我在XML中创建了一个TextView,并为它设置了一些规则(例如layout_bellow="something"
),并将其高度设置为0,以便单击按钮时,其高度将设置为wrap_content
。我为负责调整大小的按钮编写了下面的代码,下面是我为 TextView 编写的 XML 代码。问题是,当我单击按钮时,高度变得match_parent
,layout_bellow
属性被忽略,它从父布局的开头绘制,宽度(设置为match_parent
)变得wrap_content
。问题出在哪里?谢谢。
按钮:
btnExpand.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, height));
}
});
XML:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/firstRow"
android:layout_width="match_parent"
android:layout_height="wrap_content">
.
.
.
</LinearLayout>
<TextView
android:id="@+id/theTextView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_below="@id/firstRow"
android:text="lorem ipsom lorem ipsom">
</RelativeLayout>
编辑:这是一张图片来演示问题
基本上,问题是您正在创建新的LayoutParams并将其设置为视图。您已经获得了视图的已设置(xml)布局参数,并修改要修改的任何内容并将其设置回视图。
LayoutParams layoutParams = textView.getLayoutParams();
//height = LayoutParams.WRAP_CONTENT;or 100 or whatever
layoutParams.height = LayoutParams.WRAP_CONTENT;
textView.setLayoutParams(layoutParams);