设置对话框的最大宽度

3

我的对话框使用LinearLayout作为其根布局,并使用以下代码作为其自定义主题:

    <style name="HuskyBusDialog">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFrame">@null</item>
    <item name="android:windowBackground">@drawable/panel_background</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
    <item name="android:colorBackgroundCacheHint">@null</item> 
</style>

是否可以设置最大宽度?在手机上很好,但我想为平板电脑进行优化,它们太大了。

3个回答

1

宽度将在线性布局的XML中处理,而不是您应用于其样式中。使用XML中的android:layout_width标签指定可能的宽度。


1
一个老问题,然而没有合适的答案,但你可以在这里找到一些提示:如何在显示活动对话框时自定义宽度和高度 这有助于自定义宽度和高度,但不设置最大宽度和高度!为了在使用对话框主题的活动上实现这一点,我必须做几件事:
1)设置布局监听器以知道对话框布局何时设置。
2)如果其大小超出所需限制,则调整对话框布局,有效地设置最大尺寸。
这是我目前正在使用的工作代码片段,在setContentView()之后被调用:
    getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(
            new OnGlobalLayoutListener()
    {
        @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
        @SuppressWarnings("deprecation")
        @Override
        public void onGlobalLayout()
        {
            adjustDialog();
        }
    });

现在,对话框大小调整是实际屏幕大小的百分比:
private void adjustDialog()
{
    Window w = getWindow();
    w.setGravity(Gravity.CENTER);

    int current_width = w.getDecorView().getWidth();
    int current_height = w.getDecorView().getHeight();

    WindowManager.LayoutParams lp = w.getAttributes();

    DisplayMetrics dm = getResources().getDisplayMetrics();
    int max_width = (int) (dm.widthPixels * 0.90);
    int max_height = (int) (dm.heightPixels * 0.90);

    if (current_width > max_width)
    {
        lp.width = max_width;
    }
    if (current_height > max_height)
    {
        lp.height = max_height;
    }

    w.setAttributes(lp);
}

-2

如果你想在 XML 中使用宽度,请尝试使用 Widht。

android:layout_width="Defined in pixels//20px"

或者你也可以尝试这个

android:width="Defined in pixels// 30px"

希望这对你有帮助


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