0

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

假设我有一个名为“ fromlayout”的布局,其中有两个TextViewsid 为“一”和“二”,另一个布局说“ tolayout”,我只想添加TextView从另一个布局获得的“一个” fromlayout

4

5 回答 5

0

给整体充气并在充气器的结果上View调用findViewById()方法来获得你需要的东西。

于 2013-06-03T13:03:37.883 回答
0

认为最好的选择是使用包含更多信息,请查看http://developer.android.com/training/improving-layouts/reusing-layouts.html

于 2013-06-03T13:06:59.610 回答
0

你需要做的就是这个。

LayoutInflater li = LayoutInflater.from(fromView);
View yourView = li.inflate(R.layout.to, null);

TextView tv = (TextView) yourView.findViewById(...);
于 2013-06-03T13:07:17.670 回答
0

似乎您正在尝试解决您不应该遇到的问题。如果这one TextView是您在多个布局中想要的,您可以通过编程方式对其进行实例化,或者您可以将其放置在自己的布局文件中,然后将其包含在fromLayouttoLayout(或通过编程方式对其进行膨胀。

于 2013-06-03T13:07:39.740 回答
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" />

现在,如果您从布局膨胀,您只会得到视图一,而要膨胀 ViewStub,您需要单独膨胀它。

如果您需要 View 2,那么您可以像这样膨胀 ViewStub:

ViewStub stub = (ViewStub) findViewById(R.id.subTree);
View inflated = stub.inflate();
于 2013-06-03T13:19:40.867 回答