动态添加文本后Textview没有调整大小?

时间:2016-09-09 08:58:52

标签: android xml

这是我的XML。我正在动态添加文本并将其设置为XML中的wrap_content,但之后textview似乎没有根据包含的文本调整大小。我正在使用可扩展的布局来扩展来自https://github.com/AAkira/ExpandableLayout的点击。 我假设其中一个父高度设置错误,但我已经检查了几乎所有组合,似乎没有任何帮助。将高度设置为硬编码(500dp)非常合适。谁能帮我吗?谢谢!

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:card_view="http://schemas.android.com/tools">

    <ScrollView
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:fillViewport="true">

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

            <android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/cardviewTwitterMessages"
                android:layout_marginBottom="8dp"
                card_view:cardElevation="4dp"
                card_view:cardUseCompatPadding="true"
                card_view:cardCornerRadius="5dp">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">

                    <Button
                        android:id="@+id/expandableButton1"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:background="@color/colorPrimary"
                        android:drawableLeft="@android:drawable/arrow_down_float"
                        android:onClick="expandableButton1"
                        android:paddingRight="10dp"
                        android:text="Recent Tweets"
                        android:textColor="#fff" />

                    <com.github.aakira.expandablelayout.ExpandableRelativeLayout
                        android:id="@+id/expandableLayout1"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/expandableButton1"
                        android:background="#fff"
                        android:padding="16dp"
                        app:ael_duration="400"
                        app:ael_expanded="false"
                        app:ael_interpolator="bounce"
                        app:ael_orientation="vertical">

                        <TextView
                            android:textColorLink="@color/colorPrimary"
                            android:id="@+id/TwitterMessagesText"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:minLines="50"/>
                    </com.github.aakira.expandablelayout.ExpandableRelativeLayout>
                </RelativeLayout>
            </android.support.v7.widget.CardView>
        </LinearLayout>

    </ScrollView>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_input_add"
        android:tint="#fdfdfd" />

</android.support.design.widget.CoordinatorLayout>

1 个答案:

答案 0 :(得分:0)

您的TextView正在尝试匹配父 将其设为 wrap_content

<TextView
    android:textColorLink="@color/colorPrimary"
    android:id="@+id/TwitterMessagesText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minLines="50"/>

此外,您的ScrollView正在尝试 wrap_content ,而所有到TextView的孩子都尝试 match_parent 。这意味着当这些相同的孩子试图找出他们的父宽度时(在ScrollView的链中),ScrollView正试图包装它的子节点。

当您在TextView上将宽度设置为500dp时,所有向上视图都会继承相同的大小(因为它们的match_parent宽度),因此工作完全正常。
在ScrollView上, match_parent 或给它一些宽度,以便其子项适应它。

@EDIT

此外,作为干净代码的问题,请将 fill_parent 替换为 match_parent
fill_parent已被弃用,并在API 8上用match_parent替换 reference here