我需要动态更改其中包含的TextView
和Gravity
文本的大小。 TextView最初位于RelativeLayout
内的左上角。我需要扩展它以覆盖整个RelativeLayout并以其为中心显示其文本内容。然后我需要将其恢复到初始设置。
我的问题是我无法回到初始设置:TextView的高度保持RelativeLayout的高度,TextView的文本内容保持在垂直轴的中心(宽度和水平对齐正确重置)。
以下是XML的摘录:
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:layout_weight="1"
android:id="@+id/Row0">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/A1"
android:tag="A1"
android:padding="@dimen/default_cell_padding"
android:layout_weight="1"
android:onClick="setGUICellSelected"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_margin="@dimen/default_cell_margin">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:id="@+id/A11"
android:tag="A11"
android:textSize="@dimen/tipFontSize"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />
以下是代码(重新排列以显示逻辑流程):
RelativeLayout.LayoutParams relativeLayoutLayoutParamsCenteredInParent = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
RelativeLayout.LayoutParams relativeLayoutLayoutParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
...
textView.setLayoutParams(relativeLayoutLayoutParamsCenteredInParent);
textView.setGravity(Gravity.CENTER);
...
textView.setLayoutParams(relativeLayoutLayoutParams);
textView.setGravity(Gravity.TOP + Gravity.LEFT);
在relativeLayoutLayoutParams
变量的构造函数中设置宽度和高度的正整数值而不是RelativeLayout.LayoutParams.WRAP_CONTENT
没有影响。
在relativeLayoutLayoutParams
变量中保存TextView“A11”的初始LayoutParamaters而不是使用上面的构造函数也不起作用。
我应该如何设置relativeLayoutLayoutParams变量,以便将textView恢复到原始大小,并将文本内容左右对齐,然后将其扩展为与父级匹配?或者我应该使用除LayouParameters以外的其他东西吗?
*****编辑*****
API = 15时会出现问题,而不是更高的API级别。