2014-01-15 242 views
0

我正在開發一個需要展現略低於位於導航欄菜單按鈕對話框的應用程序,爲實現這一目標,我用下面的代碼更改位置

Dialog dialogMenu = new Dialog(mContext); 
     dialogMenu.setContentView(R.layout.dialog_main_menu); 
     dialogMenu.getWindow().setBackgroundDrawable(
       new ColorDrawable(android.graphics.Color.TRANSPARENT)); 

     WindowManager.LayoutParams windowLayout = dialogMenu.getWindow() 
       .getAttributes(); 
     windowLayout.gravity = Gravity.TOP | Gravity.LEFT; 
     dialogMenu.getWindow().getAttributes().verticalMargin = -0.8F; 
     dialogMenu.getWindow().getAttributes().horizontalMargin = 0.02F; 
     dialogMenu.getWindow().setAttributes(windowLayout); 

但問題是,經過一個固定的垂直邊距對話框沒有像圖中所示的那樣向上移動,實際上我想要對話框點應該觸摸菜單按鈕。我無法找到解決方案。 image having screenshot of mydevice

這裏是我的dialog_main_menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:background="@drawable/main_menu_bg" > 

      <TextView 
       android:id="@+id/txtHeadingMenu" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="15dp" 
       android:text="@string/menu" 
       android:textColor="@android:color/white" 
       android:textSize="14sp" /> 

      <Button 
       android:id="@+id/ListItem_btnMyItem" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/txtHeadingMenu" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="4dp" 
       android:background="@drawable/selector_btn_sort_dialog" 
       android:text="@string/my_item" 
       android:textColor="@android:color/white" 
       android:textSize="13sp" /> 

      <Button 
       android:id="@+id/ListItem_btnMyCategory" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/ListItem_btnMyItem" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="4dp" 
       android:background="@drawable/selector_btn_sort_dialog" 
       android:text="@string/my_category" 
       android:textColor="@android:color/white" 
       android:textSize="13sp" /> 

      <Button 
       android:id="@+id/ListItem_btnPersonalList" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/ListItem_btnMyCategory" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="5dp" 
       android:background="@drawable/selector_btn_sort_dialog" 
       android:text="@string/personal_list" 
       android:textColor="@android:color/white" 
       android:textSize="13sp" /> 

      <Button 
       android:id="@+id/ListItem_btnStore" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/ListItem_btnPersonalList" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="4dp" 
       android:background="@drawable/selector_btn_sort_dialog" 
       android:text="@string/store" 
       android:textColor="@android:color/white" 
       android:textSize="13sp" /> 

      <Button 
       android:id="@+id/ListItem_btnSharedList" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/ListItem_btnStore" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="4dp" 
       android:background="@drawable/selector_btn_sort_dialog" 
       android:text="@string/shared_list" 
       android:textColor="@android:color/white" 
       android:textSize="13sp" /> 

      <Button 
       android:id="@+id/ListItem_btnSettings" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/ListItem_btnSharedList" 
       android:layout_centerHorizontal="true" 
       android:layout_marginBottom="4dp" 
       android:layout_marginTop="4dp" 
       android:background="@drawable/selector_btn_sort_dialog" 
       android:text="@string/settings" 
       android:textColor="@android:color/white" 
       android:textSize="13sp" /> 
     </RelativeLayout> 
    </RelativeLayout> 

</RelativeLayout> 
+0

什麼是你的佈局?你也可以使用quickaction來達到這個目的https://github.com/evancharlton/quick-actions-demo –

+0

@ Jitesh Upadhyay:dialog_layout.xml可以幫助改變對話框的位置嗎? –

+0

請嘗試使用 –

回答

0

您可以通過應用windowLayout.x =(按照您的要求把值)和windowLayout.y =(按放值達到同樣的事情你要求)並忽略使用dialogMenu.getWindow()。getAttributes()。verticalMargin = -0.8F; dialogMenu.getWindow()。getAttributes()。horizo​​ntalMargin = 0.02F;

+0

我也嘗試過x和y參數,但在y對話框的固定值不動了。 –