android - 在 onCreateView() fragment 中设置动态布局

标签 android android-fragments

我用,

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

          MyView myView = new MyView(getActivity());
          myView.addViews(getViews());
          return myView;
        }

我知道 public void onActivityCreated (Bundle savedInstanceState){}onCreateView(); 之后调用

我将需要 onCreateView() 中的上下文来扩充自定义布局。如何在 onActivityCreated() 之前一直获取有效上下文(使用 getActivity())?

可能的解决方案:

View view;
@Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {

              view = inflater.inflate(R.layout.fragment, container, false); //Contains empty RelativeLayout       
              return view;
            }


    //Now that we have activity, create custom views and add it to the empty container
    public void onActivityCreated (Bundle savedInstanceState){
      RelativeLayout layout = (RelativeLayout)view.findViewById(R.id.layout);
      MyView myView = new MyView(getActivity());
      layout.add(myView); 
    }

但是这个方法增加了一个额外的 View 层次结构。

最佳答案

您可以使用与 LayoutInflater 关联的 Context 对象:

MyView myView = new MyView( inflater.getContext() );

关于android - 在 onCreateView() fragment 中设置动态布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19736534/

相关文章:

android - 在 Android 中存储 API key ,是否足够混淆?

android - 在 Android 中加载 fragment 需要更多时间

Android 无法解析符号 OnRequestPermissionsResultCallback

android - fragment 可以实现其父 Activity 的两个接口(interface)吗?

java - 如何在 Android 的 Fragment 中使用 'bundle' 而不是 'intent.putExtra()'

android - Android 应用程序运行时异常 : unable to inflate MapFragment

java - SensorEventListener 不会使用 unregisterListener() 方法取消注册

android - 在 Parse (Android) 中保存和检索照片和视频

android - 设置 Android fragment 进入和退出转换?

java - 如何使用OkHttp3获取JSONArray形式的JSONObject