在不同的API的不同的看法树

时间:2013-08-08 08:43:26

标签: android layout

我需要在Activity中获取视图,并在所有手机和API版本上以相同的方式获取它们。 我是这样做的:

private void walkTroughViews(ViewGroup group)
{
    for (int i=0; i<group.getChildCount(); i++)
    {
        View view = group.getChildAt(i);

        if (something)
        {
            //Do something
        }
        if (view instanceof ViewGroup)
        {
            ViewGroup viewGroup = (ViewGroup) view;
            walkTroughViews(viewGroup);
        }
    }
}

但结果因API级别或手机型号而异(尚不确定) 似乎在4.2上有一个LinearLayout,在&gt; 4.0上有帧布局不在4.1或4.1上。 为什么这样,我怎样才能获得所有手机上相同的活动布局? 目前,我正在尝试在onGlobalLayoutListener mActivity.getWindow().getDecorView().findViewById(R.id.content)

中启动此方法

P.S。我想这可能是因为support-v4库,但为什么4.2上有备用LinearLayout?

1 个答案:

答案 0 :(得分:0)

不同API的库和本机组件可以生成不同的布局。这适用于选项卡活动和操作栏,进度条等。我通常使用ui automator viewer检查viewtree,它非常方便检查: http://developer.android.com/tools/debugging/debugging-ui.html 还有这个: http://developer.android.com/tools/testing/testing_ui.html

相关问题