如何为对话框主题的Activity设置百分比宽度

5

我有一个使用对话框主题(Theme.Holo.DialogWhenLarge)的Activity。它的显示区域太窄了,我想让它填满更大的屏幕比例。我试图通过覆盖windowMinWidthMinorwindowMinWidthMajor属性来实现这一目标。

我的 Activity 使用的主题如下所示...

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

然而,似乎windowMinWidthMajorwindowMinWidthMinor没有任何效果。请问有人可以解释我做错了什么吗?


这对我有效,如果我使用 parent="android:style/Theme.Holo.Light.Dialog",在最低SDK版本为23上运行。 - r3flss ExlUtr
2个回答

4
@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);
    }

-1

在安卓中设置百分比是不可能的,但有一个解决方法。我所做的是获取屏幕宽度并将其乘以我想要视图或项目的百分比(例如:如果我想让某个东西填充宽度的40%,则为屏幕宽度* 0.4)


2
这个属性的文档说得很清楚:“可以是一个分数值,即浮点数后面加上%或%p,例如“14.5%”。”(http://developer.android.com/reference/android/R.attr.html#windowMinWidthMajor) - Bob Liberatore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接