2013-03-12 219 views
5

我有一個帶有對話框主題的活動(Theme.Holo.DialogWhenLarge)。它看起來太狹窄了,我希望它能填滿更大比例的屏幕。我試圖通過重寫windowMinWidthMinorwindowMinWidthMajor屬性來完成此操作。如何爲對話框主題設置百分比寬度

我的活動所使用的主題看起來像這樣...

<style name="MyTheme" parent="@android:style/Theme.Holo.DialogWhenLarge"> 
    <item name="android:windowMinWidthMajor">90%</item> 
    <item name="android:windowMinWidthMinor">90%</item> 
</style> 

然而,這似乎是windowMinWidthMajorwindowMinWidthMinor沒有任何效果。任何人都可以解釋我做錯了什麼嗎?

+0

如果我在SDK上使用'parent =「android:style/Theme.Holo.Light.Dialog」',那麼這對我有用23 – 2016-08-09 15:24:21

回答

-1

爲android設置百分比是不可能的,但是有辦法解決。我所做的是獲得屏幕寬度並將其乘以我希望我的視圖或項目的百分比(例如:如果我想要填充寬度的40%,如果將是Screen-Width * 0.4)

+2

該屬性的文檔中另有說明:「可能是小數值,是一個浮點數,後跟%或%p,例如「14.5%」。「 (http://developer.android.com/reference/android/R.attr.html#windowMinWidthMajor – Project 2015-12-15 00:42:42

3
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //Some code here 
     setWindowHeight(90); 
    } 
    /** 
    * Set percentage width height 
    * @param percent percent from current size. From 0 to 100. 
    */ 
    private void setWindowHeight(int percent){ 
     DisplayMetrics metrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(metrics); 
     int screenHeight = metrics.heightPixels; 
     WindowManager.LayoutParams params = getWindow().getAttributes(); 
     params.height = (int)(screenHeight*percent/100); 
     this.getWindow().setAttributes(params); 
    }