我正在开发一个带有 ScrollView 的应用程序,其中的大部分视图都添加到 onCreate 的 RelativeLayout。像这样:
我还想在运行时添加视图。这些被添加到上图中的当前位置。我想要做的是在运行时在想要的位置添加视图。
我怎样才能做到这一点?
我正在开发一个带有 ScrollView 的应用程序,其中的大部分视图都添加到 onCreate 的 RelativeLayout。像这样:
我还想在运行时添加视图。这些被添加到上图中的当前位置。我想要做的是在运行时在想要的位置添加视图。
我怎样才能做到这一点?
您可以将 RelativeLayout 转换为 LinearLayout 并设置android:orientation="vertical"
.
在此 LinearLayout 中,您可以为水平视图嵌套另一个 LinearLayout,使用android:orientation="horizontal"
.
这样,对于每个水平视图部分,您可以将子 LinearLayout 添加到您的父 LinearLayout,并且这些子元素中的每一个都将根据您的需要垂直排列在另一个下方。
将此设置为滚动视图
android:orientation="vertical"
和android:scrollbars="vertical"
我认为答案包含在最后一行(parent.addView(brick, 0 );),但为了排除误解,我已经发布了所有代码。现在我也在做同样的事情
xml
activity_view.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
>
<ScrollView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
>
<LinearLayout android:id="@+id/parent"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal"
>
</LinearLayout>
</ScrollView>
</RelativeLayout>
tpl_yellow_brick.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="42dp"
android:layout_width="42p"
>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="I'm square yellow brick"
/>
</LinearLayout>
爪哇
View brick = getLayoutInflater().inflate(R.layout.tpl_yellow_brick, null);
ViewGroup parent = findViewById(R.id.parent);
parent.addView(brick, 0);