在Android中对齐弹出菜单

时间:2013-12-31 06:34:09

标签: android android-layout

**我创建了一个弹出窗口并在屏幕顶​​部打开**

   LinearLayout viewGroup = (LinearLayout) context.findViewById(R.id.llll);
   LayoutInflater layoutInflater = (LayoutInflater)     context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   View layout = layoutInflater.inflate(R.layout.action_bar, null);

   // Creating the PopupWindow
   changeStatusPopUp = new PopupWindow(context);
   changeStatusPopUp.setContentView(layout);
   changeStatusPopUp.setWidth(160);
   changeStatusPopUp.setHeight(229);
   changeStatusPopUp.setFocusable(true);

   int OFFSET_X = -20;
   int OFFSET_Y = 50;

   changeStatusPopUp.showAtLocation(layout, Gravity.NO_GRAVITY, p.x + OFFSET_X, p.y  + OFFSET_Y);

当我在模拟器上运行程序并打开弹出菜单时,弹出位置是完美的

emulator

**当我在bluestack上运行然后在中心右侧打开时,它并不完美**

blue stack

当我运行然后移动隐藏所有菜单项时,请建议我如何修复弹出位置,如模拟器。

phone

我的弹出式xml代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
 android:id="@+id/llll"
android:layout_height="wrap_content"
android:orientation="vertical" >

<LinearLayout 
    android:id="@+id/limyprofile"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dip"
    android:orientation="horizontal"
    android:weightSum="10" >

    <ImageView
        android:id="@+id/opmyprofile"
         android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:adjustViewBounds="true"
        android:clickable="true"
        android:maxHeight="40dip"
        android:maxWidth="40dip"
        android:layout_marginTop="5dip"
        android:src="@drawable/myprofileimg" />
    <TextView

    android:id="@+id/myprofiletxt"
    android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="8dip"
        android:layout_weight="8"
        android:clickable="true"
        android:textSize="15sp"
         android:text="My Profile"
         android:textColor="#FF0000"
         android:textStyle="bold"
/>

</LinearLayout>

 <View 
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@android:color/darker_gray"/>

<LinearLayout 
       android:id="@+id/lijobalert"
        android:layout_marginLeft="10dip"
    android:layout_marginTop="5dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >

    <ImageView
        android:id="@+id/opjobalert"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
          android:clickable="true"
           android:layout_weight="2"
           android:adjustViewBounds="true"
      android:maxHeight="40dip"
       android:maxWidth="40dip"
        android:src="@drawable/jobalert4" />
    <TextView
    android:id="@+id/opjobalerttxt"
   android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="8dip"
        android:layout_weight="8"
        android:clickable="true"
        android:textSize="15sp"
         android:textColor="#FF0000"
         android:textStyle="bold"
    android:text="Job Alert" />

</LinearLayout>

     <View 
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@android:color/darker_gray"/>

<LinearLayout 
     android:layout_marginLeft="10dip"
    android:layout_marginTop="5dip"
       android:id="@+id/lisavedjob"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >

    <ImageView
        android:id="@+id/opsavedjob"
         android:layout_width="wrap_content"
        android:layout_height="wrap_content"
          android:clickable="true"
           android:layout_weight="2"
           android:adjustViewBounds="true"
      android:maxHeight="40dip"
       android:maxWidth="40dip"
        android:src="@drawable/sa" />
    <TextView
    android:id="@+id/savedtxt"
    android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="8dip"
        android:layout_weight="8"
        android:clickable="true"
         android:textColor="#FF0000"
        android:textSize="15sp"
        android:textStyle="bold"
    android:text="Saved Jobs" />

 </LinearLayout>

     <View 
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@android:color/darker_gray"/>

    <LinearLayout  
     android:layout_marginLeft="10dip"
    android:layout_marginTop="5dip"
    android:layout_marginBottom="5dip"
         android:id="@+id/liback" 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >

    <ImageView
        android:id="@+id/opback"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
          android:clickable="true"
           android:layout_weight="2"
           android:adjustViewBounds="true"
      android:maxHeight="40dip"
       android:maxWidth="40dip"
        android:src="@drawable/back1" />
    <TextView
    android:id="@+id/backtxt"
    android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="8dip"
        android:layout_weight="8"
        android:clickable="true"
        android:textSize="15sp"
         android:textColor="#FF0000"
         android:textStyle="bold"
    android:text="Back" />

   </LinearLayout>

      <View 
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@android:color/darker_gray"/>

    <LinearLayout 
    android:layout_marginLeft="10dip"
    android:layout_marginTop="5dip"
    android:id="@+id/listlogout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >

    <ImageView
        android:id="@+id/oplogout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:adjustViewBounds="true"
      android:maxHeight="40dip"
       android:layout_weight="2"
       android:maxWidth="40dip"
        android:src="@drawable/logout" />
    <TextView
    android:id="@+id/logouttxt"
     android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="8dip"
       android:layout_weight="8"
        android:clickable="true"
        android:textSize="15sp"
         android:textColor="#FF0000"
         android:textStyle="bold"
    android:text="Logout" />

  </LinearLayout>


  </LinearLayout>

请建议我如何在所有设备的模拟器顶部打开弹出窗口

任何帮助都是赞赏的。

先谢谢。 我对自己糟糕的英语感到非常抱歉。

1 个答案:

答案 0 :(得分:0)

在showAtLocation()中,你不想指定重力而不是偏移吗?