【问题标题】:How to prevent layout from stretching when running on qHD (540x960)?在 qHD (540x960) 上运行时如何防止布局拉伸?
【发布时间】:2026-01-30 22:25:01
【问题描述】:

我有一个不错的 LinearLayout,它可以在 480x800 屏幕上按预期运行。 布局包含三个主要部分:顶部、中间和底部。 在 qHD 中运行时,顶部布局变得更长(更高)。我希望顶部布局保持其高度为 480x800,并且额外的空间将被“添加”到屏幕的末尾。 我将尝试在附图中显示。

顶部布局高度是'匹配父级'

中间:35dp

底部:'wrap_content'

现在,我想,也许将顶部布局更改为“wrap_content”,所以我这样做了,但为了测试它,我只是将布局设计屏幕中的配置更改为更大的屏幕,看起来它一直在拉伸顶部布局,

我该怎么做,或者确保顶部布局不会拉伸到 540 的高度? 谢谢,伊兰。

这是我的 xml:

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

    <LinearLayout style="@style/TitleBar" >

        <ImageView
            style="@style/TitleBarLogo"
            android:contentDescription="@string/description_home"
            android:onClick="onClickHome"
            android:src="@drawable/logo" />

        <TextView style="@style/TitleBarText" />

        <ImageButton
            style="@style/TitleBarAction"
            android:src="@drawable/ic_actionbar_item_map" />
    </LinearLayout>

    <!-- page header -->
    <include layout="@layout/page_header"/>


    <!-- Layout1 -->
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/llrow"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:gravity="top|center"
    android:orientation="vertical"
    android:baselineAligned="true" >

        <!-- Layout1.1 -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="top|center"
            android:layout_weight="1"
            android:gravity="top|center"
            android:orientation="horizontal"
            android:paddingRight="5dp" >

                        <!-- Layout1.1.1 -->

                        <LinearLayout
                            android:layout_width="0dp"
                            android:layout_height="118dp"
                            android:layout_gravity="top|right"
                            android:layout_weight="0.98"
                            android:baselineAligned="false"
                            android:gravity="top|right"
                            android:orientation="vertical"
                            android:paddingRight="2dp"
                            android:paddingTop="5dp" >

                            <!-- Layout1.1.1.1 -->
                            <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="top|right"
                            android:paddingRight="5dp"
                            android:gravity="top|right"
                            android:orientation="horizontal" 
                            android:layout_weight="1">

                                <ImageView
                                android:id="@+id/heartImg"
                                android:layout_gravity="top"
                                android:layout_width="20dp"
                                android:layout_height="20dp"
                                android:layout_marginRight="4dp"
                                android:src="@drawable/heart"
                                />

                                <TextView
                                android:id="@+id/itemHeaderTitle"
                                style="@style/ItemTitle"
                                android:textSize="16sp"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content" />
                            </LinearLayout><!-- end Layout1.1.1.1 -->

                            <!-- Layout1.1.1.2 -->
                            <LinearLayout
                            android:id="@+id/llRecommended"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="top|right"
                            android:paddingRight="5dp"
                            android:gravity="top|right"
                            android:orientation="horizontal" 
                            android:visibility="invisible"
                            android:layout_weight="1">

                            <TextView
                                android:id="@+id/itemRecommendedText"
                                style="@style/ItemDescRecommend"
                                android:text="@string/recommended_title"
                                android:textSize="12sp"
                                android:paddingTop="4dp"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content" />

                            <ImageView
                                android:id="@+id/recommendImg"
                                android:layout_gravity="top"
                                android:layout_width="20dp"
                                android:layout_height="20dp"
                                android:src="@drawable/recommended_icon"
                                />

                            </LinearLayout><!-- end Layout1.1.1.2 -->

                            <!-- Layout1.1.1.3 -->
                            <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="top|right"
                            android:paddingRight="5dp"
                            android:gravity="top|right"
                            android:orientation="horizontal" 
                            android:layout_weight="1">

                            <TextView
                                android:id="@+id/itemCategoryText"
                                style="@style/ItemDescRecommend"
                                android:text=""
                                android:textSize="12sp"
                                android:textColor="@android:color/black"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content" />


                            </LinearLayout><!-- end Layout1.1.1.3 -->                                                                      

                            <!-- Layout1.1.1.4 -->
                            <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="top|right"
                            android:gravity="right"
                            android:visibility="invisible"
                            android:orientation="horizontal" 
                            android:layout_weight="1">

                                    <!-- Layout1.1.1.4.1 -->
                                    <LinearLayout
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_gravity="top|right"
                                    android:paddingRight="5dp"
                                    android:gravity="top|right"
                                    android:orientation="horizontal" 
                                    android:layout_weight="1">

                                    <RatingBar
                                    android:id="@+id/itemRating"
                                    style="@style/priceRatingBar"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:isIndicator="false"
                                    android:rating="4" />

                                    <TextView
                                    style="@style/ItemDescRecommend"
                                    android:text="@string/price_rating_title"
                                    android:textColor="@android:color/black"
                                    android:textSize="12sp"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content" />

                                    </LinearLayout><!-- end Layout1.1.1.4.1 -->  
                                    <!-- Layout1.1.1.4.2 -->               
                                    <LinearLayout
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_gravity="top|right"
                                    android:paddingRight="5dp"
                                    android:gravity="top|right"
                                    android:orientation="horizontal" 
                                    android:layout_weight="1">

                                    <RatingBar
                                    android:id="@+id/itemRating"
                                    style="@style/favoritesRatingBar"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:isIndicator="false"
                                    android:rating="4" />

                                    <TextView
                                    style="@style/ItemDescRecommend"
                                    android:text="@string/rating_title"
                                    android:textColor="@android:color/black"
                                    android:textSize="12sp"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content" />

                                    </LinearLayout><!-- end Layout1.1.1.4.2 -->                 

                            </LinearLayout><!-- end Layout1.1.1.4 -->                               

                            <!-- Layout1.1.1.5 -->
                            <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="top|right"
                            android:paddingRight="5dp"
                            android:gravity="top|right"
                            android:orientation="horizontal" 
                            android:layout_weight="1">
                            <TextView
                                android:id="@+id/itemDistanceUnit"
                                style="@style/ItemDescRecommend"
                                android:text="ק&quot;מ"
                                android:paddingRight="5dp"
                                android:textSize="12sp"
                                android:textColor="@android:color/black"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content" />
                            <TextView
                                android:id="@+id/itemDistance"
                                style="@style/ItemDescRecommend"
                                android:text="@string/restaurants_title"
                                android:textSize="12sp"
                                android:textColor="@android:color/black"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content" />

                            <TextView
                                android:id="@+id/itemDistanceTitle"
                                style="@style/ItemDescRecommend"
                                android:text="@string/distance_title"
                                android:textSize="12sp"
                                android:textColor="@android:color/black"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content" />


                            </LinearLayout>  <!-- end Layout1.1.5 -->

                            <!-- Layout1.1.1.6 -->                                                                 
                            <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="top|right"
                            android:paddingRight="5dp"
                            android:gravity="top|right"
                            android:orientation="horizontal" 
                            android:layout_weight="1">
                            <TextView
                                android:id="@+id/itemShortDesc"
                                style="@style/ItemDescRecommend"
                                android:text=""
                                android:textSize="12sp"
                                android:textColor="@android:color/black"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content" />
                            </LinearLayout><!-- end Layout1.1.6 -->                 
                        </LinearLayout><!-- end Layout1.1.1 -->

                        <ImageView
                        android:id="@+id/ivItemImage"
                        android:layout_gravity="right"
                        android:layout_width="100dp"
                        android:layout_height="80dp"
                        android:src="@drawable/food" />
                    </LinearLayout>
        <!-- end Layout1.1 -->  

            <!-- Layout1.2 -->
            <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="35dp"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="15dp"
            android:orientation="horizontal">

                <LinearLayout
                           android:id="@+id/llDirections"
                           android:layout_width="match_parent"
                           android:layout_height="wrap_content"
                           android:layout_column="1"
                           android:layout_gravity="top"
                           android:layout_weight="4"
                           android:background="@drawable/cell"
                           android:gravity="center"
                           android:orientation="horizontal" >

                           <TextView
                               android:layout_width="wrap_content"
                               android:layout_height="wrap_content"
                               android:gravity="center"
                               android:padding="1dip"
                               android:text="@string/direction"
                               android:textColor="#727272"
                               android:textSize="12sp" />

                           <ImageView
                               android:id="@+id/itemDirectImg"
                               android:layout_width="25dp"
                               android:layout_height="25dp"
                               android:layout_gravity="center_vertical"
                               android:src="@drawable/action_direction_ic" />
                       </LinearLayout>        

                <LinearLayout
                           android:id="@+id/favoritesToggle"
                           android:layout_width="match_parent"
                           android:layout_height="wrap_content"
                           android:layout_gravity="top"
                           android:layout_weight="4"
                           android:background="@drawable/cell"
                           android:gravity="center"
                           android:orientation="horizontal" >

                           <TextView
                               android:layout_width="wrap_content"
                               android:layout_height="wrap_content"
                               android:gravity="center"
                               android:padding="1dip"
                               android:text="@string/title_feature2"
                               android:textColor="@color/ar_bg"
                               android:textSize="12sp" />

                           <ImageView
                               android:id="@+id/itemFavoriteImg"
                               android:layout_width="25dp"
                               android:layout_height="25dp"
                               android:layout_gravity="center_vertical"
                               android:src="@drawable/action_heart_ic" />
                       </LinearLayout>              

            </LinearLayout>


            <!-- end Layout1.2 -->


            <!-- Layout 1.3 tab control-->
            <include layout="@layout/tab_control" android:layout_height="match_parent"/>
            <!-- end Layout 1.3 tab control-->


    </LinearLayout>             <!-- end Layout1 -->

</LinearLayout>

【问题讨论】:

  • 请输入您正在使用的xml代码,以便我们帮助您适应您的情况。
  • 是的,它现在在那里,但你正在向一些 LinearLayout 声明样式,它不在代码中,所以我开始了解它的属性?即使你也包括一些布局。所以这里也有适当的解决办法。或者作为最佳实践使用 pastebin.com 放置这么长的代码,然后给出该代码的链接。

标签: layout android-layout


【解决方案1】:

只需将wrap_content 用于顶部布局的高度和重量属性,并将android:layout_weight="1" 添加到底部布局中,然后查看结果。 如果仍然无法解决您的问题,请输入 xml 代码,以便我们为您提供适当的帮助。

谢谢。

【讨论】:

  • 好的,首先谢谢。我实际上已经有了这些设置,除了顶部布局的 wrap_content。我已经添加了,但我还不能在真实设备上检查它,所以我在 eclipse 中测试了图形布局设计......它看起来仍然无法正常工作。我将尝试在此处添加我的 xml。
  • 是的,请将您的 xml 放在这里。 . .或者把它放在 pastebin.com 上并给出那个链接。
【解决方案2】:

您可以为该视图使用dp 单位。

【讨论】: