1

以前,我有文件 res\layout\main.xml:

    <ScrollView
    android:id="@+id/SCROLLER_ID"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.98"
    android:fillViewport="true"
    android:scrollbars="vertical" >

<TextView
    android:id="@+id/showmsg"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:scrollbarStyle="insideOverlay"
    android:scrollbars="vertical"
    android:textColor="@color/textshowmsgcolor"
    android:textSize="10dp" />
</ScrollView>

我需要动态创建一个TextView,所以现在我有了res\layout\main.xml:

    <ScrollView
    android:id="@+id/SCROLLER_ID"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.98"
    android:fillViewport="true"
    android:scrollbars="vertical" >

<LinearLayout
    android:id="@+id/linearLayout2"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
</LinearLayout>

</ScrollView>

这是我的 MainActivity.java:

    TextView tv = new TextView(this);
    tv.setBackgroundColor(Color.parseColor("#112222"));
    tv.setId(windows.size()+100);
    tv.setTextSize(10);
    tv.setTextColor(Color.parseColor("#FFFFFF"));
    tv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    ((LinearLayout) linearLayout2).addView(tv);

窗口是动态创建的。不幸的是,当窗口完全填满文本时,滚动不会移动。请告诉我如何将我的旧设置写入java代码?

4

2 回答 2

0

你打算让你的 LinearLayout 水平吗?您可能想使用垂直线性布局。

<LinearLayout
android:id="@+id/linearLayout2"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
于 2012-10-21T17:11:39.820 回答
0
    tv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
((LinearLayout) linearLayout2).addView(tv);

它看起来像您将文本视图添加到线性布局,当它满时不会滚动。您需要将文本视图添加到滚动视图中才能滚动工作。

这是我会怎么做

<ScrollView
android:id="@+id/SCROLLER_ID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.98"
android:fillViewport="true"
android:scrollbars="vertical" ></ScrollView>

然后在一个Java类中。

// First declare the scrollview
scrollview = (ScrollView) findViewById(R.id.YOURSCROLLVIEWSID);
TextView tv = new TextView(this);
// Set textsize, color, etc here.
scrollview.addView(tv);

测试一下。:)

于 2012-10-21T17:12:13.250 回答