动态添加文本后Textview不调整大小?
Posted
技术标签:
【中文标题】动态添加文本后Textview不调整大小?【英文标题】:Textview not resizing after dynamically adding text? 【发布时间】:2016-09-09 08:58:52 【问题描述】:这是我的 XML。我正在动态添加文本并将其设置为 XML 中的 wrap_content,但之后文本视图似乎没有根据包含的文本调整大小。我正在使用可展开的布局来展开来自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_
android:layout_
xmlns:card_view="http://schemas.android.com/tools">
<ScrollView
android:layout_
android:layout_
android:fillViewport="true">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<android.support.v7.widget.CardView
android:layout_
android:layout_
android:id="@+id/cardviewTwitterMessages"
android:layout_marginBottom="8dp"
card_view:cardElevation="4dp"
card_view:cardUseCompatPadding="true"
card_view:cardCornerRadius="5dp">
<RelativeLayout
android:layout_
android:layout_>
<Button
android:id="@+id/expandableButton1"
android:layout_
android:layout_
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_
android:layout_
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_
android:layout_
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_
android:layout_
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>
【问题讨论】:
将您的 TextView 正在尝试匹配父项。 改为 wrap_content
<TextView
android:textColorLink="@color/colorPrimary"
android:id="@+id/TwitterMessagesText"
android:layout_
android:layout_
android:minLines="50"/>
此外,您的 ScrollView 正在尝试 wrap_content,而 TextView 的所有子级都尝试 match_parent。这意味着当那些相同的孩子试图找出它们的父宽度时(在 ScrollView 的链中),ScrollView 试图包装它的孩子。
当您在 TextView 上将宽度设置为 500dp 时,所有向上的视图都会继承相同的大小(因为它们的 match_parent 宽度),因此可以正常工作。 在您的 ScrollView 上,match_parent 或给它一些宽度,以便它的孩子适应它。
@EDIT
另外,作为简洁代码的问题,将您的 fill_parent 替换为 match_parent。 在 API 8 上,fill_parent 已弃用并替换为 match_parentreference here
【讨论】:
按照您的建议尝试过,它仍然拒绝执行任何操作。 coordinatorlayout会不会导致这些问题? 几乎没有。 coordinatorLayout 工作得很好。你如何填充TextVIew?通过适配器还是通过基本的 textView.setText("asd")?以上是关于动态添加文本后Textview不调整大小?的主要内容,如果未能解决你的问题,请参考以下文章