【问题标题】:what is root layout in XML?什么是 XML 中的根布局?
【发布时间】:2022-03-17 16:03:30
【问题描述】:
<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 文件中的代码。但它不起作用。伙计们你能帮帮我吗..!!!

【问题讨论】:

  • 请注意,AbsoluteLayout 已长期贬值,您应该使用替代方案。
  • 使用相对布局而不是你不必增加 gridview 给它包装内容,你必须在线性布局中动态添加图像,这将在滚动视图下
  • 谢谢.. :-) 但是当我使用线性布局时,我无法在 XMl 中正确放置项目。

标签: android


【解决方案1】:

这个布局的根是AbsoluteLayout。

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

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

请注意,AbsoluteLaoyut 已长期贬值,您可能希望将其替换为替代 ViewGroup,例如 LinearLayout、RelativeLayout 等,具体取决于您的布局的其余部分和您想要的方式做事。

【讨论】:

  • 因为我是这个领域的新手,所以我发现 AbsoluteLayout 很容易。我在使用 LinearLayout 或 RelativeLayout 时遇到的问题是,我无法将项目放置在 XMl 中的适当位置。所以我正在使用它。特雷弗先生有什么解决办法???
【解决方案2】:

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

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

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

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

如上所述,您可能应该使用RelativeLayout 或LinearLayout 而不是AbsoluteLayout。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-28
      • 2013-10-08
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多