我想将自己的视图类定义为一个DisplayClass,其中包含几个Textview,ImageViews,ProgressViews,并将这些视图作为元素。
这背后的想法是,可以在XML中多次重复使用DisplayClass,并轻松访问/更新不同的DisplayClass实例。
在XML中,它看起来像是一个多次使用的自定义小部件,就像这里......
<myDisplayClass
android:id="@+id/id1"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:leftText ="x1..."
android:midText = "y1.."
android:topText = "z1.."
...and other fields />
<myDisplayClass
android:id="@+id/id2"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:leftText ="x2..."
android:midText = "y2.."
android:topText = "z2.."
...and other fields />
<myDisplayClass
android:id="@+id/id3"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:leftText ="x3..."
android:midText = "y3.."
android:topText = "z3.."
...and other fields />
<myDisplayClass
android:id="@+id/id_n"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:leftText ="x.n.."
android:midText = "y.n."
android:topText = "z.n."
...and other fields />
虽然它基于一个布局display_class.xml,它只定义了一次布局。
非常感谢任何想法,提示或可用的示例/教程。
答案 0 :(得分:1)
重用常见的xml代码:
你可以在单独的布局中定义它,例如commonlayout.xml,它将具有线性/相对布局等作为父级,并具有你想要的所有视图。
在任何想要使用该布局的xml代码中,您只需使用
即可 <include layout="@layout/commonlayout" />
PS:我不认为你需要在你提出的问题中定义myDisplayClass
,如果你只想使用默认的EditText / TextViews / Widgets等......或者你可以解释一下提到的答案不是你在寻找..
编辑: 在评论中指定的概率之后:
View layout1 = findViewById(R.id.layout1);
TextView tv = (TextView)layout1.findViewById(R.id.commonTextView);
类似于第二种布局中的另一个文本视图
TextView tv2 = (TextView)layout2.findViewById(R.id.commonTextView);