我有一个包括:
<include
android:id="@+id/placeHolder"
layout="@layout/test" />
包含布局看起来像(test.xml):
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/outer"
... >
<ImageView
android:id="@+id/inner"
... />
</FrameLayout>
我似乎无法在运行时找到 id="inner" 的内部 ImageView:
ImageView iv = (ImageView)findViewById(R.id.inner);
if (iv == null) {
Log.e(TAG, "Not found!");
}
我应该能够找到它吗?似乎因为它使用了“包含”,所以普通的 findViewById 方法不起作用。
- - - - - 更新 - - - - - - - -
所以我可以找到分配给包含的 id:
View view = findViewById(R.id.placeHolder); // ok
但我无法通过 id 找到它的任何孩子,例如:
view.findViewById(R.id.outer); // nope
view.findViewById(R.id.inner); // nope
如果我尝试直接搜索它们,则与原始版本相同,例如:
findViewById(R.id.outer); // nope
findViewById(R.id.inner); // nope
ids 可能只是在运行时从元素中剥离出来吗?
谢谢