2012-10-29 82 views
1

我有一個使用對話主題的活動。對話框主題活動寬度

<activity android:name=".GamePreviewDialog" 
     android:theme="@android:style/Theme.Dialog" 
     android:label="Chess Set Preview"> 

我無法弄清楚如何獲得對話框的寬度。通常,如果它不是對話框,我會在佈局上使用getWidth()。但是,這樣做是行不通的。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/gamePreviewMainLayout" 
    android:background="@color/game_background"> 
    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/gamePreviewButtonView" 
     android:id="@+id/gamePreview" 
     android:background="@color/game_background"> 
    </RelativeLayout>   
    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:id="@+id/gamePreviewButtonView" 
     android:background="@color/background"> 

     <Button 
      android:text="Close" 
      android:id="@+id/previewCloseBtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="@drawable/chess_mates_btn"> 
     </Button> 
    </LinearLayout> 
</RelativeLayout> 

我也嘗試過在我的contentView被設置爲像在其他職位建議後調用此。有關如何以編程方式獲取寬度的任何想法?

getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 

回答

-2

之後onCreate()方法可以得到高度和寬度。

+0

如何?我已經嘗試在我的Layout對象上調用getWidth(),並返回0 – EpicOfChaos

+0

,您可以在活動類的onclick()方法內獲得高度和寬度。我也面臨這個問題,但我得到解決方案使用上述解決方案。 – URAndroid

+0

你沒有回答我的問題,如何?調用getWidth()什麼? OnClick()是什麼? – EpicOfChaos

0

事實證明,這不是因爲Dialog主題,這是因爲它是一個RelativeLayout,它不知道onResume時的寬度。要解決這個問題,您可以使用View.post()方法在視圖設置完成後執行您的設置代碼。發現該解決方案在這裏android getHeight()/getWidth with RelativeLayout

0

爲您設置佈局寬度FILL_PARENT,你可以得到屏幕大小是您的看法寬度現在