【问题标题】:Cannot add FloatingActionButton to FloatingActionMenu in fragment class无法将 FloatingActionButton 添加到片段类中的 FloatingActionMenu
【发布时间】:2016-12-09 16:29:43
【问题描述】:

我正在尝试将 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());

这里提供的所有答案 Using context in a fragment

【问题讨论】:

    标签: android android-fragments floating-action-button floating-action-menu


    【解决方案1】:

    这是初始化 FAB 的方式:

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

    这里fabBtn 是您的FAB 在布局XML 文件中的ID。

    更新:

    使用这行代码:

    FloatingActionButton changename=new FloatingActionButton(getBaseContext());
    

    【讨论】:

    • 是的,您对初始化 fab 按钮很正确,但如果我使用该方法无法添加按钮。我试图暗示这个例子中给出的内容github.com/futuresimple/android-floating-action-button/blob/…
    • 得到它 wright thaxs..它在方法 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) 下工作如果我在 onCreate 方法下使用它会给出空指针错误
    【解决方案2】:

    您应该从 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();
    

    【讨论】:

    • 我明白你的想法,但事实并非如此,我不想在我的主要活动上使用任何按钮,我想在片段中的浮动操作按钮中添加按钮..它应该像 Inbox 应用程序的 Fab
    • 不,不完全是主要活动。该活动将被您的片段夸大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多