如何以编程方式创建布局并将其插入到另一个以编程方式创建的布局中

时间:2016-01-30 03:29:29

标签: android android-layout

我有以下布局,并试图弄清楚如何在onCreate方法上以编程方式生成它。我发现很多关于将预定义的xml布局插入另一个布局的帖子,但没有关于如何以编程方式执行此操作的任何内容。如果这是一个菜鸟问题,请原谅我,我还在学习这个平台。

 <LinearLayout
        android:id="@+id/scrolling_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp" >

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/table_row_selector"
                android:minHeight="20dp"
                android:layout_gravity="top"
                android:paddingBottom="5dp"
                android:layout_marginBottom="3dp" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:text="Team 1"
                    android:id="@+id/textView6"
                    android:layout_column="6"
                    android:textColor="#000000" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:text="Wins: 0"
                    android:id="@+id/textView13"
                    android:layout_column="2"
                    android:textColor="#000000" />

            </TableRow>

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/table_row_selector"
                android:minHeight="40dp"
                android:paddingBottom="5dp"
                android:layout_marginBottom="3dp"
                android:layout_gravity="top" >

                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:id="@+id/imageView5"
                    android:layout_column="2"
                    android:layout_gravity="center_vertical"
                    android:src="@mipmap/kazanz"
                    android:padding="2dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:text="Zachary Kazanski"
                    android:id="@+id/textView5"
                    android:layout_column="6"
                    android:layout_gravity="center_vertical"
                    android:layout_marginLeft="10dp"
                    android:fontFamily="sans-serif-light" />

                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:text="^"
                    android:id="@+id/button9"
                    android:layout_column="13"
                    android:textSize="10dp"
                    android:layout_gravity="center_vertical" />

                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:text="V"
                    android:id="@+id/button10"
                    android:layout_column="13"
                    android:textSize="10dp"
                    android:layout_gravity="center_vertical" />

            </TableRow>

        </TableLayout>

    </LinearLayout>

</ScrollView>

1 个答案:

答案 0 :(得分:1)

在你的Activity中,只需调用getLayoutInflater(),然后使用该inflater使用R.layout来扩展某些布局 - 结果你将获得一个View。

如果该视图是LinearLayout(或其他一些ViewGroup),则将其转换为ViewGroup,并且您将使用addView方法将子视图插入其中。

如果你想在Activity中使用某个布局作为主视图,它甚至更简单,只需这样做:

setContentView(R.layout.your_layout);

请参阅Android Layouts tutorial for more details

这个问题/答案显示了如何访问LayoutInflater(来自任何地方):

Call to getLayoutInflater() in places not in activity