我的对话框使用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>
是否可以设置最大宽度?它在手机上很好,但我试图优化它的平板电脑,它们太大了。
答案 0 :(得分:1)
宽度将在XML中为线性布局处理,而不是在您应用于它的样式中处理。使用XML中的android:layout_width
标记指定它可能有多宽。
答案 1 :(得分:1)
一个老问题,但是没有回复是合适的,但你可以在这里找到一些提示:How to customize the width and height when show an Activity as a Dialog
这有助于自定义宽度和高度,但不能设置最大宽度和高度!为了在使用对话框主题的活动上实现这一点,我必须做几件事:
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 :(得分:-1)
是的,如果你想为你的xml做Width GO 并尝试做
android:layout_width="Defined in pixels//20px"
或者你也可以尝试这个
android:width="Defined in pixels// 30px"
我希望它对你有帮助