当我调用FragmentTransaction add (Fragment fragment, String tag)
时android在哪里添加 fragment
我写了这段代码,但看不到 fragment 的布局。它显示一个空白屏幕。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Fragment fragment = new TestFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(fragment, "test");
ft.commit();
} // onCreate
public class TestFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.frag_layout, container, false);
}
} // TestFragment
您需要指定布局资源 ID
,以便 FragmentTransaction
可以将您的 fragment 添加到该资源(容器)。
当您调用 FragmentTransaction.add(Fragment, Tag)
时,您实际上调用的是 FragmentTransaction.add(0,Fragment,Tag)
并记住“0”不是一个有效的资源 ID。所以实际上你的 fragment 是在没有任何 View 的情况下创建的。
可能有没有 View 的 fragment ,所以这个方法实际上用于那些刚刚创建以进行一些处理但与布局没有交互的 fragment 类型
我是一名优秀的程序员,十分优秀!