Ho una vista in cui sto creando un PopupWindow
. In questo PopupWindow
, ho una casella di testo (EditText
). Quando si fa clic per modificare il testo, la tastiera si apre e l'intera vista sale, ma la parte superiore della vista diventa sotto la visualizzazione della barra delle azioni senza intoppi. Fin qui tutto bene.Android: aggiunta di una vista al layout che determina il layout davanti a ActionBar
ora aggiunto un vuoto GridView
senza ulteriore configurazione al PopupWindow
, e ora lo stesso scenario accade ma tutta la parte superiore della visualizzazione va sopra della visuale colonna azione e non liscia (la comparsa diventa un casino, quando la tastiera scompare la posizione del popup cambia per un paio di secondi e ci sono "avanzi" dalla tastiera per un secondo). Succede anche con ListView
.
Voglio che la parte superiore della vista vada sotto l'ActionBar senza problemi, come dovrebbe.
Qualche idea?
AGGIORNAMENTO: Aggiungendo lo GridView
in modo programmatico l'ho parzialmente risolto su un paio di dispositivi, ma su alcuni dispositivi è ancora in corso.
Visualizzazione della popupwindow
:
pView=inflater.inflate(R.layout.activity_packbuild, (ViewGroup)mainActivity.findViewById(R.layout.activity_main));
pw = new PopupWindow(
pView,
ma.f.getView().getMeasuredWidth(),
ma.f.getView().getMeasuredHeight(),
true);
pw.showAtLocation(mainActivity.getWindow().getDecorView().findViewById(android.R.id.content), Gravity.BOTTOM, 0, 0);
BUONO:
BAD:
Layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lID">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rID"
android:background="@drawable/back5">
<ImageView
android:layout_width="125px"
android:layout_height="200px"
android:id="@+id/mImageView"
android:background="@drawable/com_facebook_picker_default_separator_color"
android:layout_alignParentTop="true"
android:layout_weight="1"
android:layout_centerHorizontal="true"
android:layout_marginTop="300dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_below="@+id/mImageView"
android:layout_marginTop="22dp"
android:layout_toRightOf="@+id/lButton"
android:layout_toLeftOf="@+id/rButton" />
<ImageView
android:layout_width="125px"
android:layout_height="200px"
android:id="@+id/imageViewRR"
android:background="@drawable/com_facebook_picker_default_separator_color"
android:layout_alignTop="@+id/mImageView"
android:layout_toRightOf="@+id/mImageView"
android:layout_marginLeft="20dp" />
<ImageView
android:layout_width="125px"
android:layout_height="200px"
android:id="@+id/imageViewLL"
android:background="@drawable/com_facebook_picker_default_separator_color"
android:layout_alignTop="@+id/mImageView"
android:layout_toLeftOf="@+id/mImageView"
android:layout_marginRight="20dp" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/lButton"
android:layout_below="@+id/editText"
android:layout_alignLeft="@+id/imageViewLL"
android:layout_alignStart="@+id/imageViewLL" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/rButton"
android:layout_alignTop="@+id/lButton"
android:layout_alignRight="@+id/imageViewRR"
android:layout_alignEnd="@+id/imageViewRR"
android:layout_marginTop="5dp" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/picButton"
android:layout_alignTop="@+id/galleryButton"
android:layout_alignLeft="@+id/editText"
android:layout_alignStart="@+id/editText"
android:background="@drawable/camera2" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/videoButton"
android:background="@drawable/video"
android:layout_alignTop="@+id/galleryButton"
android:layout_centerHorizontal="true" />
<ImageView
android:layout_width="125px"
android:layout_height="200px"
android:id="@+id/imageViewR"
android:background="@drawable/com_facebook_picker_default_separator_color"
android:layout_above="@+id/editText"
android:layout_alignRight="@+id/sendButon"
android:layout_alignEnd="@+id/sendButon" />
<ImageView
android:layout_width="125px"
android:layout_height="200px"
android:id="@+id/imageViewL"
android:background="@drawable/com_facebook_picker_default_separator_color"
android:layout_alignTop="@+id/mImageView"
android:layout_alignLeft="@+id/editText" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/galleryButton"
android:background="@drawable/gallery"
android:layout_alignTop="@+id/rButton"
android:layout_alignRight="@+id/imageViewR" />
<ImageButton
android:layout_width="100px"
android:layout_height="100px"
android:id="@+id/toButton"
android:layout_above="@+id/imageViewR"
android:layout_alignLeft="@+id/picButton"
android:layout_alignStart="@+id/imageViewL"
android:background="@drawable/fbfriends2"
android:layout_alignRight="@+id/imageViewLL"
android:layout_alignEnd="@+id/imageViewLL"
android:layout_marginBottom="20dp" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/sendButon"
android:background="@drawable/go"
android:layout_alignTop="@+id/toButton"
android:layout_alignRight="@+id/editText"
android:layout_alignEnd="@+id/editText" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/plusButtonL"
android:background="@drawable/plusp"
android:layout_alignTop="@+id/videoButton"
android:layout_toRightOf="@+id/imageViewLL" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/minusButtonR"
android:background="@drawable/minusp"
android:layout_alignTop="@+id/videoButton"
android:layout_toLeftOf="@+id/imageViewRR" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/plusButton"
android:background="@drawable/plusp"
android:layout_alignTop="@+id/videoButton"
android:layout_centerHorizontal="true" />
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/minusButton"
android:background="@drawable/minusp"
android:layout_alignTop="@+id/videoButton"
android:layout_centerHorizontal="true"
android:layout_marginTop="300dp" />
</RelativeLayout>
sto aggiungendo il GridView
di programmazione:
gv=new GridView(ma);
List<Student> hhh=new ArrayList<Student>();
if (FriendPickerApplication.selectedUsers!=null) {
if (FriendPickerApplication.selectedUsers.size() > 0) {
for (GraphUser gu : FriendPickerApplication.selectedUsers) {
hhh.add(new Student("name", gu.getId()));
}
}
}
StudentAdapter sta=new StudentAdapter(ma,hhh);
//gv=(GridView)pView.findViewById(R.id.gridView2);
gv.setVisibility(View.VISIBLE);
MainActivity.wantedPicSize=ma.screenWidth/12; //6
int wantedSize=MainActivity.wantedPicSize+2; //10
RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
relativeParams.addRule(RelativeLayout.LEFT_OF, btnSend.getId());
relativeParams.addRule(RelativeLayout.RIGHT_OF,picFriends.getId());
relativeParams.addRule(RelativeLayout.ALIGN_TOP, picFriends.getId());
relativeParams.addRule(RelativeLayout.ALIGN_BOTTOM, picFriends.getId());
gv.setLayoutParams(relativeParams);
gv.setPadding(5,0,5,0);
((RelativeLayout)pView.findViewById(R.id.rID)).addView(gv);
ViewGroup.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.FILL_PARENT,
RelativeLayout.LayoutParams.FILL_PARENT);//gv.getLayoutParams();
relativeParams.height = wantedSize+(int)(wantedSize/5); //this is in pixels
relativeParams.width = (int)(ma.screenWidth/3.0);//gv.getLayoutParams().width; //(int)((((ma.screenWidth*3)/4)/wantedSize)*wantedSize);
gv.setColumnWidth(wantedSize); //+width betwen profiles
gv.setVerticalSpacing(5);
//gv.setNumColumns((int)((screenWidth/2)/100));
gv.setNumColumns((relativeParams.width/wantedSize));
System.out.print("COLUMNSSSSSSSSSS- "+(relativeParams.width/wantedSize));
gv.setLayoutParams(relativeParams);
gv.setVisibility(View.VISIBLE);
gv.setAdapter(sta);
potresti pubblicare alcuni screenshot? Ho difficoltà a cercare di immaginare come appare il problema, se possibile postare uno in cui sono previsti i lavori 'popupwindow' (su alcuni dispositivi come dici tu) e uno dove non è – TomTsagk
Ho aggiunto gli screenshot buoni e cattivi. – user2162550
Potresti fornire il layout? Inoltre potrebbe essere meglio usare Dialog/DialogFragment –