textview位于容器视图中,其高度正在变化。详细地说,容器是一个带有几个子节点的relativeLayout,textView就是其中之一。 textView是一个叠加层,需要与容器的高度相同。
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1">
某种程度上,textView的高度在xml中不起作用,它只显示文本的高度。尝试了几种方法而且不起作用。
<TextView
android:id="@+id/overlay"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:text="text"
android:layout_centerInParent="true"
android:layout_gravity="center_vertical"
android:gravity="center"
android:background="#eeffffff"
/>
似乎在代码中做它是唯一的选择。
containerView.measure(0, 0);
int containerHeight = containerView.getHeight();
哪一个更好?
theTextView.setHeight(containerHeight);
或
ViewGroup.LayoutParams param = theTextView.getLayoutParams();
param.height = containerHeight;
theTextView.setLayoutParams(param);
答案 0 :(得分:0)
问题是你正在使用
RelativeLayout的
并设置参数
机器人:layoutHeight = “WRAP_CONTENT”
我会使用LinearLayout并将高度参数设置为“match_parent”
<LinearLayout
android:layoutHeight="match_parent"
android:layoutWidth="match_parent">
<TextView
android:layoutHeight="match_parent"
android:layoutWidth="match_parent">
</TextView>
</LinearLayout>
基本上,父布局必须占用整个屏幕,以便子TextView占据整个屏幕,因此布局需要适当的大小,然后你可以使用TextView“match_parent”来占用整个布局。我会远离RelativeLayout,除非你必须拥有它,因为相对布局不像LinearLayout那样结构化,有时更难以正确定位。