Ich verwende StickyGridHeaders Bibliothek, um eine Gridview wie snapfish zu erstellen. Hier ist mein erwartetes Layout:Popup-Fenster in StickyGridHeader falsche Position anzeigen
ich ein Popup-Fenster angezeigt, wenn eine Taste auf Kopfansicht (roter Pfeil) anstelle von Kontrollkästchen zu berühren. Das Problem ist, dass mein Popup-Fenster immer die falsche Position anzeigt. Von Fenstern Debuggen kann ich es hat die gleiche Stelle mit klebrigem Kopf, aber ich für meine Gridview mithilfe von StickyGridHeadersGridView.setAreHeadersSticky(false);
Hier ausgeschaltet sticky Kopf sieht, ist meine Adapter-Header:
public View getHeaderView(final int position, View convertView, ViewGroup parent) {
final HeaderViewHolder viewHolder;
if(convertView == null){
convertView = inflater.inflate(R.layout.item_header_gallery, null);
viewHolder = new HeaderViewHolder();
viewHolder.tvImagePrice = (TextView) convertView.findViewById(R.id.tvImagePrice);
viewHolder.btnTouch = (Button) convertView.findViewById(R.id.btnTouch);
convertView.setTag(viewHolder);
}else{
viewHolder = (HeaderViewHolder) convertView.getTag();
}
ImageGroup item = headers.get(position);
viewHolder.tvImagePrice.setText(item.getPriceString());
viewHolder.btnTouch.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int[] location = new int[2];
viewHolder.btnTouch.getLocationOnScreen(location);
// location always is [905,59] for every header item
System.out.println("location = " + location[0] + "," + location[1]);
// show popup on this location:
mPopupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0], location[1]);
}
});
return convertView;
}
Wenn ich zeige Ein Popup in der Unteransicht statt der Kopfzeile, das Popup-Fenster wird korrekt angezeigt. Ist etwas nicht in Ordnung?
Wenn Sie dies noch nicht gelöst haben ... versuchen Sie, den Ort aus der 'View' zu holen, auf die geklickt wurde:' v.getLocationOnScreen (location); 'anstelle der Instanz von' viewHolder'. – myanimal
Ich habe versucht, aber es zeigt immer noch auf der Oberseite von Gridview. Weil diese Bibliothek versucht, die Header-Ansicht oben durch Anfügen und Trennen der Ansicht – R4j