我正在从android编写我的第一个程序,并且很难按照我的意图定位和调整PopupWindow。目前,单击菜单栏上的按钮后将弹出弹出窗口。点击之后我希望弹出显示集中,但是当前点击时结果如下图所示(由于< 10声誉而无法发布图片):
https://www.box.com/s/7d4qk8tqlvhiog7576mc
Java Popup方法和监听器:
public void showPopup(View add){
PopupWindow popup = new PopupWindow(this);
setContentView(R.layout.add);
popup.setBackgroundDrawable(null);
popup.showAtLocation(add, Gravity.CENTER,0,0);
popup.setFocusable(true);
popup.setOutsideTouchable(true);
View hideAdd = findViewById(R.id.add_task);
hideAdd.setVisibility(View.INVISIBLE);
}
public boolean onOptionsItemSelected(MenuItem menuItem){
switch(menuItem.getItemId()){
case R.id.add_task:
View addTaskView = findViewById(R.id.add_task);
showPopup(addTaskView);
return true;
default:
return false;
}
}
}
添加布局Xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/task_title"
android:textSize="25sp"
android:textColor="@android:color/holo_blue_bright"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/holo_blue_bright"/>
<EditText android:id="@+id/task_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/task_prompt">
</EditText>
</LinearLayout>
非常感谢任何帮助。
答案 0 :(得分:1)
尝试将xml中的所有“android:layout_width =”match_parent“”更改为“android:layout_width =”wrap_content“”
答案 1 :(得分:1)
有一种称为自定义对话框。 ..例如。:
您可以设计布局并将其设置为对话框..
Dialog dialog=new Dialog();
dialog.setContentView(the layout u designed here);
将活动转换为对话框..检查我对此post的答案..
..因此对话框有无穷无尽的可能性..
答案 2 :(得分:0)
我认为这是因为您将视图的可见性设置为不可见。尝试评论并再次运行。