3
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/rootLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:scrollbars="none"
        android:layout_x="0dp"
        android:layout_y="0dp"
        android:fillViewport="true" >

        <LinearLayout
            android:id="@+id/linearLayout1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >


    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="0dp"
        android:src="@drawable/background" />
        </LinearLayout>

    </ScrollView>


    </LinearLayout>

这是我的 xml 文件。可惜很简单。我的意图是动态增加滚动视图的高度,并且图像(与滚动视图一起)视图将逐渐显示。所以我该怎么做以及这里的 rootLayout 是什么以及如何从我的代码中调用 rootLayout ?

final Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            public void run() {

                runOnUiThread(new Runnable()
                {
                    public void run() {

                        secondCounter++;
                        yourNewHeight += 10;

                        sv.getLayoutParams().height = yourNewHeight;

                        LinearLayout root = (LinearLayout)      findViewById(R.id.rootLayout);
                        root.invalidate();
                        Log.v("", "" +sv.getLayoutParams().height);

                        if(secondCounter == 20){
                            timer.cancel();
                        }
                    }
                });
            }
        }, delay, period);

这是我在 java 文件中的代码。但它不起作用。伙计们你能帮帮我吗..!!!

4

3 回答 3

0

此布局的根是AbsoluteLayout.

您可以使用如下调用获取对该根View及其所有子项的引用:Activity

mRootView = ((ViewGroup)findViewById(R.id.rootLayout));

请注意,它AbsoluteLaoyut已长期贬值,您可能希望将其替换为替代品ViewGroup,例如 a LinearLayoutRelativeLayout等,具体取决于您的布局的其余部分以及您想要如何做事。

于 2012-07-12T10:42:03.620 回答
0

如果您在代码中适当地扩展了您的 XML(即称为setContentView()),您应该能够使用以下方法引用 rootLayout:

AbsoluteLayout root = (AbsoluteLayout) findViewById(R.id.rootLayout);

虽然如果你只是想增加 的高度,ScrollView直接调用更有意义:

ScrollView scroll = (ScrollView) findViewById(R.id.scrollView1);

如上所述,您可能应该使用 aRelativeLayoutLinearLayout而不是AbsoluteLayout.

于 2012-07-12T10:43:20.637 回答
0

由于 ScrollView 中只能有一个 Child,因此您可以将 ScrollView 本身用作根元素,并将 LinearLayout 作为直接且唯一的子元素,您可以在其中添加所需的任何视图。

并且 AbsoluteLayout 已被弃用,我建议不要使用它

于 2012-07-12T10:43:47.213 回答