Textview没有得到显示在右边另一个textView编程方式在android
问题描述:
我想动态地将textview添加到textView的右侧,但textView没有得到显示。Textview没有得到显示在右边另一个textView编程方式在android
声明“params2.addRule(RelativeLayout.RIGHT_OF,1);”在下面的代码是创建一个问题,如果我删除该行textview显示在随机位置。
需要实现这个XML动态
<TextView
android:id="@+id/stationnameVal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="KANYAKUMARI (CAPE)"
android:textColor="@color/black"
android:textSize="12sp" />
<TextView
android:id="@+id/arrivaltimeVal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="45dp"
android:layout_toRightOf="@+id/stationnameVal"
android:text="SRC"
android:textColor="@color/black"
android:textSize="12sp" />
代码是:
RelativeLayout rel = new RelativeLayout(this);
// first TextView
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
TextView stateName = new TextView(DisplayActivity.this);
stateName.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
params.setMargins(0, 5, 0, 0);
stateName.setText("KANYAKUMARI (CAPE)");
stateName.setId(1);
stateName.setTextColor(R.color.black);
stateName.setTextSize(12);
rel.addView(stateName, params);
// Adding Second TextView
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
TextView arr = new TextView(DisplayActivity.this);
arr.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
arr.setText("SRC");
arr.setTextColor(R.color.white);
arr.setTextSize(12);
params2.addRule(RelativeLayout.ALIGN_PARENT_TOP, stateName.getId());
params2.addRule(RelativeLayout.RIGHT_OF, 1);
params2.setMargins(45, 0, 0, 0);
rel.addView(arr, params2);
答
如何改变 “LayoutParams.FILL_PARENT” 到 “LayoutParams.WRAP_CONTENT”?
问候
紫藤陈
答
改变这一点:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
或本:
rel.addView(stateName, params);
到
rel.addView(stateName);
,改变这一点:
params2.addRule(RelativeLayout.ALIGN_PARENT_TOP, stateName.getId());
到
params2.addRule(RelativeLayout.ALIGN_PARENT_TOP);
和PARAM做同样的:
params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
否则就删除它,因为康亚库玛瑞和src没有正确对齐。
真正做到这一点对准他们:
params2.addRule(RelativeLayout.ALIGN_TOP, 1);
+0
将参数从FILL_PARENT改为WRAP_CONTENT可解决此问题。 – Badrinath 2012-08-17 08:31:18
其实我好奇的东西。是否有可能使两个TextView都使用RelativeLayout来填充可用空间。使用LinearLayout,将使用'layout_weight。但是关于相对布局的idk。 – Andy 2012-08-17 07:37:19
@你可以使用Display Metrics来查找屏幕大小(在你的情况下是宽度),并将textView的宽度设置为tv.setWidth(width/2);对于textViews – 2012-08-17 07:39:05
嗯,这可以工作。不是一个坏主意。对于4或5个视图是否能正确工作?均匀地分割空间可行,但奇数又如何? – Andy 2012-08-17 07:47:04