以编程方式向活动添加视图

问题描述 投票:1回答:3

我在Tab内的Activity的onCreate()上具有此代码:

String[] info = getResources().getStringArray(R.array.fc_1);
TextView q = new TextView(this);
q.setText(info[0]);

TextView a1 = new TextView(this);
a1.setText(info[1]);

TextView a2 = new TextView(this);
a2.setText(info[2]);

TextView a3 = new TextView(this);
a3.setText(info[3]);

LinearLayout linlay = new LinearLayout(this);
linlay.addView(q);
linlay.addView(a1);
linlay.addView(a2);
linlay.addView(a3);
setContentView(linlay);

发生的情况是仅显示第一个文本视图,并且具有正确的信息info [0],但是其他文本视图不存在。

任何想法我可能做错了什么?

android android-layout android-tabhost
3个回答
1
投票

LinearLayout的默认方向是水平。因此,其他TextView位于第一个占所有空间的右侧。将LinearLayout的方向更改为垂直。


0
投票

LinearLayout的标准高度和宽度为fill_parent。这将使您的第一个textView使用所有空间来隐藏其余视图(将它们置于屏幕之外)。

您可以将linlay的方向更改为垂直,也可以更改不同文本视图的宽度。您需要使用LinearLayout.LayoutParams才能实现。


0
投票
String[] info = getResources().getStringArray(R.array.fc_1);

TextView q = new TextView(this);
q.setText(info[0]);
TextView a1 = new TextView(this);
a1.setText(info[1]);

TextView a2 = new TextView(this);
a2.setText(info[2]);

TextView a3 = new TextView(this);
a3.setText(info[3]);

LinearLayout linlay = new LinearLayout(this);
linlay.setOrientation(1);//set vertical orientation
linlay.addView(q);
linlay.addView(a1);
linlay.addView(a2);
linlay.addView(a3);
setContentView(linlay);

尝试此代码块

© www.soinside.com 2019 - 2024. All rights reserved.