簡體   English   中英

工具欄作為片段中的操作欄

[英]Toolbar as action bar in Fragment

在我的應用程序中,我使用NoActionBar樣式,並且要將動作欄添加到片段之一。

在活動中,我可以這樣做:

public class MyActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
}

如何分段?

我是這樣嘗試的:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.menu_main, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

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

        Toolbar actionBar = (Toolbar) getActivity().findViewById(R.id.my_app_bar);
        ((AppCompatActivity) getActivity()).setSupportActionBar(actionBar);

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

    }

但這是行不通的。

我認為這是UPD的問題:

 Toolbar actionBar = (Toolbar) getActivity().findViewById(R.id.my_app_bar); ((AppCompatActivity) getActivity()).setSupportActionBar(actionBar); 

舊問題)),應為:

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

     //Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.my_app_bar);
     //((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
     //return inflater.inflate(R.layout.fragment_training, container, false);

     View v = inflater.inflate(r.layout.fragment_training, container, false);
     Toolbar toolbar = (Toolbar) v.findviewbyid(r.id.my_app_bar);
     ((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
     return v;
}

可能是您需要

((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle();

這兩個鏈接將對您有所幫助, 將工具欄設置為片段中的操作欄

如何從片段獲取工具欄?

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM