Mel*_*lon 30 performance android android-emulator android-intent android-layout
在我的fragment类中,我有条件地以编程方式将子视图元素添加到我的布局中:
LinearLayout child = (LinearLayout) inflater.inflate(R.layout.child_view, null);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,100);
container.addView(child, params);
Run Code Online (Sandbox Code Playgroud)
由于上面的代码将有条件地运行,所以,在某些时候,我想检查子视图是否已添加,如何以编程方式进行此检查?
coo*_*rok 43
如果您通过inflater创建视图,则可以检查其父级
if(view.getParent() != null) {...}
Run Code Online (Sandbox Code Playgroud)
App*_*ide 25
我想你可以简单地使用
findViewById(your_view_id)
Run Code Online (Sandbox Code Playgroud)
method:如果结果为null,则视图不存在,否则视图存在
imt*_*iga 23
很抱歉迟到的回复,但您可以尝试这个替代方案:
container.getChildCount();在添加视图之前和添加视图之后使用.喜欢 :
int x = container.getChildCount();
container.addView(child, params);
int y = container.getChildCount();
if(y > x)
Toast.makeText(context, "View Successfully Added!", Toas.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
Zon*_*Zon 12
或者,如果您要查找视图实例,则可以:
if (container.indexOfChild(childView) == -1) {
// Add child to container.
}
Run Code Online (Sandbox Code Playgroud)
我不能写评论所以我把它写在这里作为一个解决方案:从API级别19你可以调用isAttachedToWindow()哪个没有多大帮助,但如果你瞄准API 19或更高,那么这应该由文档工作.