何时从android中的布局加载片段中的视图

Posted

技术标签:

【中文标题】何时从android中的布局加载片段中的视图【英文标题】:When to load views in Fragment from layout in android 【发布时间】:2016-06-25 11:26:50 【问题描述】:

我是 android 新手,想知道在哪种生命周期方法中最好在片段中加载视图,例如

editText_full_name  = (EditText) getActivity().findViewById(R.id.editText_full_name);

我正在考虑onResume(),但有些事情告诉我它不合适。尽管如此,我想知道这样做的最佳实践。 我也使用接口作为从片段到活动的通信回调。

编辑:我还想知道何时将监听器附加到片段生命周期中的按钮上,例如 onClickListeners。

【问题讨论】:

充气完成后的onCreateView方法,或者onViewCreated方法; 【参考方案1】:

检查Complete Android Fragment & Activity Lifecycle。

当确保视图层次结构已构建时,您可能希望在 Fragment.onViewCreated() 中添加侦听器。

【讨论】:

【参考方案2】:

这取决于您要达到的目标。

首先,有一个函数public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saveInstanceState)。在那里,可以在LayoutInflater 的帮助下完成视图初始化。要获得对子视图的引用,您必须在从 LayoutInflater 初始化返回的视图上调用方法 findViewById。在此函数中还为您提供了Bundle 参数,它可以帮助您对配置更改(即屏幕旋转)做出反应。如果Bundle 参数不为空,则在配置更改后重新创建片段。

然后,有一个函数public void onViewCreated(View view...)。在那里,您还可以初始化视图。每次调用,activity都会打开fragment。

关于表演的问题,我给你发了this *** answer

不要在onResume 中初始化视图,因为每次进入前台时都会调用此事件(向下和向上滑动通知面板,来自后台,屏幕打开和关闭)。

【讨论】:

【参考方案3】:

正确的答案是在onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 中绑定视图。 顺便说一句,我建议你看看here。 这是绑定视图的绝佳工具。简单明了,不需要写很多语句,只需要在activity中使用@BindView(R.id.myId)&添加Butteknife.bind(this),在fragment中添加Butterknife.bind(this, rootView)将变量声明为Fragment变量即可。

【讨论】:

【参考方案4】:

onCreateView 方法就是你要找的。​​p>

【讨论】:

【参考方案5】:
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) 
        View rootView = inflater.inflate(R.layout.fragment_layout,
                container, false);

        Button button = (Button) rootView.findViewById(R.id.buttin_id);
        button.setOnClickListener(new OnClickListener()

        @Override
        public void onClick(View v) 
            // TODO Auto-generated method stub

              //.....

              
           );
     

【讨论】:

以上是关于何时从android中的布局加载片段中的视图的主要内容,如果未能解决你的问题,请参考以下文章

在片段中重新加载android视图

如何在Android中的主/细分片段之间进行适当的导航?

标签视图中的 Android 操作栏搜索

片段中的Android webView显示空白页面

单击ListViewItem时Android加载片段

如何在viewPager的视图顶部使用nestedScrollView中的viewpager