layoutinflater - 我们可以只夸大布局的一部分

时间:2013-06-03 13:02:48

标签: android

如何使用LayoutInflator仅获取要嵌入另一个布局的布局的一部分,而不是嵌入整个布局。

假设我有一个名为“fromlayout”的布局,其中有两个TextViews,ID为“一”和“两个” 另一个布局说“tolayout”,我只想添加从其他布局TextView获得的fromlayout'one'。

5 个答案:

答案 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();