4

我正在从 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>

任何帮助将不胜感激。

4

3 回答 3

1

尝试将 xml 中的所有“android:layout_width="match_parent"”更改为“android:layout_width="wrap_content"”

于 2013-06-08T09:22:54.317 回答
1

有一种叫做自定义对话框的东西。.. 例如。:

  1. 您可以设计布局并将其设置为对话框。

     Dialog dialog=new Dialog();
     dialog.setContentView(the layout u designed here);
    
  2. 将活动转换为对话..检查我对这篇文章的回答..

..所以对话有无限的可能性..

于 2013-06-08T10:32:28.547 回答
0

我认为这是因为您将视图的可见性设置为不可见。尝试评论并再次运行。

于 2013-06-08T10:02:01.537 回答