Android布局 - 为什么RelativeLayout不占用平板电脑的整个屏幕?

时间:2012-09-04 20:36:48

标签: android android-layout screen relativelayout

我正试图让这个布局占据我的三星Galaxy Tab 10.1的整个屏幕,它的屏幕尺寸大约为800x1280。

我在res / layout-hdpi和res / layout中有以下xml,我的@ drawable / background在res / drawable和res / drawable-hdpi中,其中hdpi中的背景图像是800x1280大小。

然而,当我渲染以下内容时,我无法让它占据整个屏幕。我试图摆脱ScrollView,将relativelayout更改为linearlayout并设置他们的layout_height =“match_parent”但没有任何变化...我已经尝试清理项目,在重新加载之前从设备卸载应用程序...似乎什么都没有用。有人请解释一下发生了什么吗?我想我错过了一些非常重要的东西。

(注意:这适用于我的点火和7英寸平板电脑,屏幕尺寸为600x1024 ish)

<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <RelativeLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="@drawable/background">

        <RelativeLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/game_relativelayout_top_textview_definition_and_example"
            >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/game_screen_image_box"
                android:id="@+id/game_linearlayout_top_textview_definition_and_example"
                android:orientation="vertical"
                >
                <TextView
                    android:id="@+id/game_textview_definition"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/padding_double"
                    android:layout_marginLeft="@dimen/padding_quadruple"
                    android:layout_marginRight="@dimen/padding_quadruple"
                    android:gravity="center_horizontal"
                    android:textSize="@dimen/font_size_slight_larger"
                    android:textColor="@android:color/black"
                    android:text="@string/filler" />

                <ImageView 
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/padding_double"
                    android:src="@drawable/details_page_screen_divider"
                    android:contentDescription="@string/filler" />

                <TextView
                    android:id="@+id/game_textview_example"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/padding_double"
                    android:layout_marginLeft="@dimen/padding_quadruple"
                    android:layout_marginRight="@dimen/padding_quadruple"
                    android:gravity="center_horizontal"
                    android:textSize="@dimen/font_size_slight_larger"
                    android:textStyle="italic"
                    android:textColor="@android:color/black"
                    android:text="@string/filler" />
            </LinearLayout>         

            <ImageView
                android:id="@+id/game_imageview_thumbs_down"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_alignParentBottom="true"
                android:layout_marginRight="@dimen/padding_quadruple"
                android:layout_marginBottom="@dimen/padding_quadruple"
                android:src="@drawable/game_screen_image_thumbs_down"
                android:contentDescription="@string/filler"
                />
            <ImageView
                android:id="@+id/game_imageview_thumbs_up"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toLeftOf="@id/game_imageview_thumbs_down"
                android:layout_alignParentBottom="true"
                android:layout_marginRight="@dimen/padding_double"
                android:layout_marginBottom="@dimen/padding_quadruple"
                android:src="@drawable/game_screen_image_thumbs_up"
                android:contentDescription="@string/filler"
                />  
        </RelativeLayout>

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/game_imageview_timer_foreground"
            android:src="@drawable/game_screen_image_timer_foreground"
            android:contentDescription="@string/filler"
            android:layout_below="@id/game_relativelayout_top_textview_definition_and_example"
            />

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/game_imageview_timer_background"
            android:src="@drawable/game_screen_image_timer_background"
            android:contentDescription="@string/filler"
            android:layout_below="@id/game_relativelayout_top_textview_definition_and_example"
            />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_below="@id/game_imageview_timer_foreground"
            android:layout_marginTop="@dimen/padding_single">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <Button
                    android:id="@+id/game_button_answer_choice_1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:textSize="@dimen/font_size_regular"
                    android:text="@string/filler"
                    android:background="@drawable/game_screen_button_top_left"/>
                <Button
                    android:id="@+id/game_button_answer_choice_2"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:textSize="@dimen/font_size_regular"
                    android:text="@string/filler"
                    android:background="@drawable/game_screen_button_top_right"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <Button
                    android:id="@+id/game_button_answer_choice_3"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:textSize="@dimen/font_size_regular"
                    android:text="@string/filler"
                    android:background="@drawable/game_screen_button_bottom_left"/>
                <Button
                    android:id="@+id/game_button_answer_choice_4"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:textSize="@dimen/font_size_regular"
                    android:text="@string/filler"
                    android:background="@drawable/game_screen_button_bottom_right"/>
            </LinearLayout>
        </LinearLayout>

    </RelativeLayout>
</ScrollView>

2 个答案:

答案 0 :(得分:1)

您应该使用fill_parentmatch_parent而不是wrap_content,因为wrap_content只占用内容所需的高度,但fill_parent或match_parent占用整个高度。

答案 1 :(得分:0)

嗯,有些事情你应该首先考虑,这可能是其他事情不能以正确的方式处理的原因。 relativeLayout没有/需要任何“orientation”参数,你应该删除它。 此外,我建议使用fill_parent或match_parent,而不是两者。 (请注意,match_parent实现了相同的结果,但只能从API 8开始提供。)

最后,确保您的图像具有您指向的像素数量:注意图像的分辨率(ppi)