0

我需要在 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,而在 >4.0 上有一个不在 4.1 或 4.1 上的框架布局。为什么会这样?如何才能在所有手机上获得相同的 Activity 布局?目前我正在尝试在onGlobalLayoutListener mActivity.getWindow().getDecorView().findViewById(R.id.content)

PS我认为这可能是因为support-v4图书馆,但为什么4.2上有备用的LinearLayout?

4

1 回答 1

0

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

于 2013-08-08T09:16:10.323 回答