【问题标题】:Why won't my first TextView shrink to accommodate a second one?为什么我的第一个 TextView 不能缩小以容纳第二个?
【发布时间】:2012-08-14 16:00:54
【问题描述】:

尝试在较小的屏幕尺寸上呈现以下RelativeLayout 时。在图形布局编辑器中,第二个TextView 完全隐藏,但第一个完全展开,显示完整的文本内容。我知道TextViews 应该是可滚动的。

有什么方法可以使用RelativeLayout 并为每个屏幕分配相等的部分,还是我应该只使用LinearLayout 并使用layout_weight?根据 Android 文档中的指导,我的印象是我应该避免使用 LinearLayout 来支持 RelativeLayout

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:fillViewport="true"
        android:gravity="center"
        android:text="Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Curabitur molestie tempor ante non interdum. Nullam sit amet diam ligula. Suspendisse ultricies commodo felis in rutrum. Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Curabitur molestie tempor ante non interdum. Nullam sit amet diam ligula. Suspendisse ultricies commodo felis in rutrum.Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Curabitur molestie tempor ante non interdum. Nullam sit amet diam ligula. Suspendisse ultricies commodo felis in rutrum."
        android:scrollbars="vertical"
        android:maxlines="100"
        android:textSize="22dp" >
    </TextView>

    <TextView
        android:id="@+id/tv2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tv1"
        android:fillViewport="true"
        android:gravity="center"
        android:scrollbars="vertical"
        android:maxlines="100"
        android:text="Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Curabitur molestie tempor ante non interdum. Nullam sit amet diam ligula. Suspendisse ultricies commodo felis in rutrum. Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Curabitur molestie tempor ante non interdum. Nullam sit amet diam ligula. Suspendisse ultricies commodo felis in rutrum.Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Curabitur molestie tempor ante non interdum. Nullam sit amet diam ligula. Suspendisse ultricies commodo felis in rutrum."
        android:textSize="22dp" />
</RelativeLayout>

【问题讨论】:

    标签: android textview android-relativelayout graphical-layout-editor


    【解决方案1】:

    由于您在第一个 TextView 中使用了“wrap_content”,它会填满所有可用空间,然后就没有空间留给第二个 TextView。如果您希望同时拥有它们,则可以将它们放在具有相同权重的 LinearLayout 中,或者您可以在“layout_height”字段中指定特定大小。 附言如果您希望它们在所有设备上都相同,那么 LinearLayout 是您最好的选择。如果您想添加任何其他相对于它们的小部件,您也可以在 RelativeLayout 中使用 LinearLayout。

    【讨论】:

      【解决方案2】:

      支持的方式,如果你可以这么称呼的话,就是使用 LinearLayout 和布局权重。另一个答案中的某个人有一个neat idea。创建一个不可见的视图,将其居中并将两个文本视图放置在该视图的两侧。

      也就是说,它总是是 50/50 的分割,并且不会像布局权重那样为您提供足够的灵活性(缩小/增长),但这取决于您的需要。

      【讨论】:

        猜你喜欢
        • 2023-03-12
        • 2020-07-31
        • 1970-01-01
        • 2018-07-05
        • 1970-01-01
        • 1970-01-01
        • 2020-08-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多