添加TextView时LinearLayout扩展

时间:2017-01-17 02:11:11

标签: android android-layout

我正在将TextView添加到LinearLayout中,但当我用文本(LinearLayout)填充时,此TextView会展开。它不是一个选项,可以将其更改为RelativeLayout或类似的东西,因为我遵循书中的指南。这是我的XML代码:

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

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="40"
        android:background="@android:color/holo_orange_light">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="match_parent">

                <TextView
                    android:text=""
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:id="@+id/textView" />
            </LinearLayout>
        </ScrollView>
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="60">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:srcCompat="@mipmap/ic_launcher"
            android:id="@+id/imageView"
            android:layout_weight="1" />
    </LinearLayout>
</LinearLayout>

3 个答案:

答案 0 :(得分:0)

我不确定你想要它做什么,但是尝试将TextView的layout_width和它所在的LinearLayout更改为&#34; match_parent&#34;。

答案 1 :(得分:0)

当您向TextView添加文本时,TextView的宽度会随着文本变大而宽度设置为&#34; wrap_content&#34;所以它的宽度是它所持有的文本的宽度。因此,作为该TextView的父视图的LinearLayout获得更大的宽度,因为它设置为&#34; wrap_content&#34;。因此,ScrollView变得更大,因为外部的LinearLayout变大了。

解决方法是将LinearLayout宽度设置为&#34; match_parent&#34;或某个任意宽度(&#34; 50dp&#34;例如)。如果设置&#34; match_parent&#34; LinearLayout宽度将是屏幕的宽度,但您必须设置&#34; match_parent&#34;同时使用LinearLayouts和ScrollView。

我希望能回答你的问题

答案 2 :(得分:0)

代码中的问题是在xml文件中,您在其中指定TextView的高度:

<LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_weight="40"
    android:background="@android:color/holo_orange_light">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="match_parent">
      <!--Change your textView as below-->
            <TextView
                android:text=""
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"  
                android:id="@+id/textView" />
        </LinearLayout>
    </ScrollView>
</LinearLayout>
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_weight="60">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:srcCompat="@mipmap/ic_launcher"
        android:id="@+id/imageView"
        android:layout_weight="1" />
</LinearLayout>