主要目标是使用预制的布局创建可以编辑的单独模块,然后以编程方式将其添加到根布局。为了澄清,several modules stuck together would look like this.我想动态创建每个由名称,日期和字母组成的可单击块。每个块的.axml代码如下:

        <RelativeLayout
            android:minWidth="25px"
            android:minHeight="25px"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/borderLayout"
            android:background="@drawable/line"
            android:paddingBottom="1dp"
            android:paddingTop="1dp">
            <RelativeLayout
                android:id="@+id/relativeLayout1"
                android:padding="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:clickable="true"
                android:background="#ff2f2f2f">
                <TextView
                    android:text="C"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/textView1"
                    android:layout_alignParentLeft="true"
                    android:textSize="30dp" />
                <TextView
                    android:text="Washington"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_toRightOf="@id/textView1"
                    android:id="@+id/textView2"
                    android:layout_alignParentRight="true"
                    android:gravity="right" />
                <TextView
                    android:text="6-8-17"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/textView2"
                    android:id="@+id/textView3"
                    android:gravity="right"
                    android:layout_alignParentRight="true" />
            </RelativeLayout>
        </RelativeLayout>


我遇到的主要问题是以与在.axml文件中格式化视图相同的方式,以编程方式格式化视图。

最佳答案

假设您要在其主axml中有一个LinearLayout且方向为vertical,并且希望将其附加到多个视图。

获取对该“父级” LinearLayout的引用:

var linearLayoutParent = FindViewById<LinearLayout>(Resource.Id.linearLayout1);


然后在某个循环中,使用LayoutInflater.Inflate扩大重复的布局,使用返回的视图,并在该FindViewById上使用View您需要更新的每个元素,然后将该视图添加到具有递增索引的父视图中:

index++;
var view = LayoutInflater.Inflate(Resource.Layout.RepeatingLayout, linearLayoutParent, false);
var letter = view.FindViewById<TextView>(Resource.Id.textView1);
letter.Text = index.ToString();
// FindViewById for textView2, textView3 and assign the text on each....
linearLayoutParent.AddView(view, index);


c# - 有没有办法在Android中以编程方式创建布局的副本?-LMLPHP

注意:如果您有很多重复元素,并且必须滚动它们(屏幕外),请改用RecyclerView,这将使您在内存管理,滚动性能等方面省去很多麻烦... ;-)

关于c# - 有没有办法在Android中以编程方式创建布局的副本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53504594/

10-10 22:53