我在Android中有一个标签式界面,并在我的应用程序中使用FrameLayout作为我的主要布局.我收到一条Android Lint警告说:
This <FrameLayout> can be replaced with a <merge\> tag
Run Code Online (Sandbox Code Playgroud)
我使用此FrameLayout(名为fragmentContainer)的唯一位置是onTabSelected侦听器.这是一个简化版本.
@Override
public void onTabSelected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction) {
// When the given tab is selected, show the tab contents in the
// container
Fragment fragment;
String tag;
switch (tab.getPosition()) {
case 0:
fragment = new myFragment1();
tag = "myFragment1";
break;
case 1:
fragment = new new myFragment2();
tag = "myFragment2";
break;
default:
Log.d(TAG, "invalid tab selected: " + tab.getPosition());
break;
}
fragmentTransaction.replace(R.id.fragmentContainer, fragment, tag);
}
Run Code Online (Sandbox Code Playgroud)
这很好用,但我希望尽可能提高性能,并尽可能摆脱任何Lint警告.如果我用合并标记替换FrameLayout,我不能调用fragmentTransaction(),因为id在任何地方都不存在.
这是FrameLayout的完整性:
<FrameLayout …Run Code Online (Sandbox Code Playgroud)