我已经在Android 2.2中的Android开发者网站Tab Layout上创建了标签布局示例。虽然示例的工作方式与宣传的一样,但我无法在我在其中一个活动中放置的文本视图中滚动。如果重要,TextView对象是在给定活动中动态创建的。我尝试使用ScrollView在main.xml中包装组件的不同部分,但是我在启动时遇到构建错误或强制关闭。附件是实现textViews的代码,它是xml以及main.xml文件。因为我是新人,所以我无法发布图像。非常感谢任何建议。
main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<!-- android:padding="5dp" -->
</LinearLayout>
</TabHost>
在选项卡中创建TextViews的源:
public class Activity2 extends Activity{
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
DisplayTexts(20);
}
private void DisplayTexts(int length){
if(length == 0)
return;
LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
for(int i = 0; i < length; i++)
{
TextView tv = new TextView(getApplicationContext());
registerForContextMenu(tv);
tv.setTextSize(30);
tv.setText("TextView " + String.valueOf(i));
tv.setLayoutParams(params);
layout.addView(tv);
tv.setId(i);
}
LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
this.addContentView(layout, layoutParam);
}
上述活动的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</LinearLayout>
答案 0 :(得分:1)
您是否尝试使用此xml进行活动:
<强> activity2.xml:强>
<?xml version="1.0" encoding="utf-8" ?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="fill_content">
<LinearLayout
android:layout_width="fill_parent"
android:id="@+id/layout1"
android:layout_height="fill_parent"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
然后尝试在Activity2.class中添加组件,如:
setContentView(R.layout.activity2);
...
LinearLayout layout = (LinearLayout)findViewById(R.id.layout1);
for(int i = 0; i < length; i++)
{
TextView tv = new TextView(getApplicationContext());
registerForContextMenu(tv);
tv.setTextSize(30);
tv.setText("TextView " + String.valueOf(i));
tv.setLayoutParams(params);
tv.setId(i);
layout.addView(tv);
}
...
答案 1 :(得分:0)
使用SetContentView代替addContentView,并尝试为布局设置canScrollVertically(int direction)。
listView可以替代您要完成的任务。