0

我正在尝试将 FloatingActionButton 添加到 FloatingActionMenu 但是在 FloatingActionButton 初始化期间无法获取上下文时,所有方法都返回 null

这是我的片段调用

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.getbase.floatingactionbutton.FloatingActionButton;
import com.getbase.floatingactionbutton.FloatingActionsMenu;
import demo.com.example.syed.test.R;
public class stdDetails extends android.support.v4.app.Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    FloatingActionMenu detailsfabmenu=(FloatingActionMenu)Container.findViewById(R,id,std_Main_Detials_fab_menu);
    FoatingActionButton(getContext());
    detailsfabmenu.addButton(changename);
    return inflater.inflate(R.layout.stddetailsfragment,container,false);
}}

代码

FloatingActionButton changename=new FloatingActionButton(getContext());

返回空值我什至尝试过基于 avilabel 答案的以下选项

FloatingActionButton changename=new FloatingActionButton(container.getContext());

FloatingActionButton changename=new FloatingActionButton(getActivity().getApplicationContext());

FloatingActionButton changename=new FloatingActionButton(this.getContext());

FloatingActionButton changename=new FloatingActionButton(this.getActivity().getApplicationContext());

这是此处提供的所有答案 在片段中使用上下文

4

2 回答 2

0

您应该从 MainActivity 调用您的浮动操作按钮

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fabBtn);
fab.show().

如果您想为特定片段显示您的工厂,您可以使用片段标签:

Fragment fragmentA = new FragmentA();
getFragmentManager().beginTransaction()
.replace(R.id.MainFrameLayout,fragmentA,"YOUR_TARGET_FRAGMENT_TAG")
.addToBackStack("YOUR_SOURCE_FRAGMENT_TAG").commit(); 

然后检查 Mainactivity 中是否有所需的片段:

 if(currentFrag.equals("YOUR_TARGET_FRAGMENT_TAG")){
        fab.show();
    }
    else
        fab.hide();
于 2016-12-09T17:01:59.017 回答
0

这是您初始化 FAB 的方式:

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

fabBtn是布局 XML 文件中您的 FAB 的 id。

更新:

使用这行代码:

FloatingActionButton changename=new FloatingActionButton(getBaseContext());
于 2016-12-09T16:43:10.093 回答