我有一个使用Dialog主题的活动。
<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);
答案 0 :(得分:0)
事实证明,这不是因为Dialog主题,而是因为它是一个RelativeLayout而且它不知道onResume时的宽度。要解决此问题,请在设置视图后使用View.post()方法执行设置代码。在此处找到此解决方案android getHeight()/getWidth with RelativeLayout
答案 1 :(得分:0)
当您设置布局宽度FILL_PARENT时,您可以获得现在是您的视图宽度的屏幕尺寸
答案 2 :(得分:-2)
在onCreate()
方法之后,您可以获得高度和宽度。