我可以在片段中构建操作栏吗?

Posted

技术标签:

【中文标题】我可以在片段中构建操作栏吗?【英文标题】:Can I build action bar in fragment? 【发布时间】:2014-02-18 22:32:41 【问题描述】:

我有在活动类中构建操作栏的应用程序。我可以在片段中构建它吗?这是我在活动中的操作栏代码。

public class StartActivity extends Activity 

    public static Context appContext; 

@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);


    //ActionBar
    ActionBar actionBar = getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(false);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayUseLogoEnabled(false);




    View view = LayoutInflater.from(actionBar.getThemedContext()).inflate(R.layout.actionbar, null);
    ActionBar.LayoutParams layoutParams = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.WRAP_CONTENT);
    view.setLayoutParams(layoutParams);
    actionBar.setCustomView(view);

如何在片段中构建它?可能吗 ?像这样的东西?

public class VideoFragment extends Fragment
   @Override
   public View onCreateView(LayoutInflater inflater,
      ViewGroup container, Bundle savedInstanceState) 

       ActionBar actionBar = getActionBar();
       actionBar.setDisplayHomeAsUpEnabled(false);
       actionBar.setDisplayShowCustomEnabled(true);
       actionBar.setDisplayShowHomeEnabled(false);
       actionBar.setDisplayShowTitleEnabled(false);
       actionBar.setDisplayUseLogoEnabled(false);


       View view = LayoutInflater.from(actionBar.getThemedContext()).inflate(R.layout.actionbar, null);
       ActionBar.LayoutParams layoutParams = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.WRAP_CONTENT);
       view.setLayoutParams(layoutParams);
       actionBar.setCustomView(view);


      return inflater.inflate(
      R.layout.mein_fragment, container, false);





【问题讨论】:

【参考方案1】:

您可以像这样访问Fragments 中的ActionBar

getActivity().getActionBar()

是的,你可以这样做:

ActionBar actionBar = getActivity().getActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayUseLogoEnabled(false);

【讨论】:

以上是关于我可以在片段中构建操作栏吗?的主要内容,如果未能解决你的问题,请参考以下文章

保存片段状态操作栏选项卡

Android中每个片段的不同操作栏 - 最佳方法?

为啥我的 ListView 显示在一个片段中而不是另一个片段中?

Android Studio - 片段按钮操作

Android:使用 putExtra 从片段访问容器活动对象?

仅在父片段中的操作栏中显示搜索视图