片段视图按主视图的ID查找视图

时间:2016-06-15 09:56:00

标签: android android-fragments

我有MainActivity的片段视图。 在MainActivity中,我加载了这个布局:

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.MainLayout);
}

在MainLayout中,是一个带有id" fab"

的浮动操作按钮

在我的片段视图类中,我加载片段视图布局,如下所示:

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

       FragementView = inflater.inflate(R.layout.FragmentViewLayout, container, false);
       FloatingActionButton fab = (FloatingActionButton) FragementView .findViewById(R.id.fab);

       return FragementView;
    }

现在我想进入片段视图类,fab(通过id查找) 但这将是一个空对象。

我的错误在哪里?

3 个答案:

答案 0 :(得分:1)

如果您需要使用片段使用getActivity()来获取活动视图。

引用文档

具体来说,片段可以使用getActivity()访问Activity实例,并轻松执行任务,例如在活动布局中查找视图:

FloatingActionButton fab = (FloatingActionButton) getActivity().findViewById(R.id.fab);

https://developer.android.com/guide/components/fragments.html

答案 1 :(得分:0)

您的FloatActionButton处于MainLayout布局而不是FragmentViewLayout布局 因此,您应该在Activity中找回它

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.MainLayout);
  ...
  FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
}

答案 2 :(得分:0)

FloatingActionButton

中加入FragmentViewLayout

<强> FragmentViewLayout.xml

<RelativeLayout 
...

//include FloatingActionButton here
...
/>
相关问题