为什么我的第一个TextView不会缩小以容纳第二个?

时间:2012-08-14 16:00:55

标签: android textview relativelayout graphical-layout-editor

尝试在较小的屏幕尺寸上呈现以下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>

2 个答案:

答案 0 :(得分:1)

由于您在第一个TextView中使用了“wrap_content”,它会填充所有可用空间,因此第二个TextView没有剩余空间。如果你想同时拥有它们,那么你可以将它们放在具有相同权重的LinearLayout中,或者你可以在“layout_height”字段中指定一定的大小。 附:如果你希望它们在所有设备上都相同,那么LinearLayout是你最好的选择。您还可以在RelativeLayout中包含LinearLayout,以防您想要添加相对于它们的任何其他小部件。

答案 1 :(得分:0)

支持的方式,如果您可以调用它,将使用LinearLayout和布局权重。另一个答案中有人有neat idea。创建一个不可见的视图,将其居中并将两个文本视图放在该视图的两侧。

也就是说,总是是50/50分割并且不会给你提供与布局权重一样多的灵活性(收缩/增长),但这取决于你需要什么。