这是我的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>
答案 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