如何使用LayoutInflator仅获取要嵌入另一个布局的布局的一部分,而不是嵌入整个布局。
假设我有一个名为“fromlayout
”的布局,其中有两个TextViews
,ID为“一”和“两个”
另一个布局说“tolayout
”,我只想添加从其他布局TextView
获得的fromlayout
'one'。
答案 0 :(得分:0)
对整个View
进行充气,并在inflater的结果上调用findViewById()
方法以获得所需内容。
答案 1 :(得分:0)
认为最佳选择是使用包含更多信息,请查看http://developer.android.com/training/improving-layouts/reusing-layouts.html
答案 2 :(得分:0)
你需要做的就是这个。
LayoutInflater li = LayoutInflater.from(fromView);
View yourView = li.inflate(R.layout.to, null);
TextView tv = (TextView) yourView.findViewById(...);
答案 3 :(得分:0)
好像你正试图解决一个你不应该拥有的问题。如果您想要在多个布局中使用one
TextView
,则可以通过编程方式对其进行实例化,也可以将其放在自己的布局文件中,然后将其包含在fromLayout
中。 toLayout
(或以编程方式对其进行充气。
答案 4 :(得分:0)
使用ViewStub
在FromLayout中,您可以创建一个ViewStub。
<View android:id="@+id/One"
...
/>
<ViewStub android:id="@+id/stub"
android:inflatedId="@+id/subTree"
android:layout="@layout/mySubTree"
android:layout_width="120dip"
android:layout_height="40dip" />
现在,如果你从theLayout充气,你将只获得View One并为ViewStub充气,你需要单独充气。
如果您需要View 2,那么您可以将ViewStub膨胀为:
ViewStub stub = (ViewStub) findViewById(R.id.subTree);
View inflated = stub.inflate();