Android Fragment相关查询我们如何使用工具栏中存在的fragmentActivty里面的工具栏我们在framelayout中的活动中替换
答案 0 :(得分:0)
您可以尝试这样的事情:
Toolbar toolbar = getActivity().findViewById(R.id.toolbar);
OR
Toolbar toolbar = getParentFragment().findViewById(R.id.toolbar);
取决于你的情况。
答案 1 :(得分:0)
我注意到您正在使用FragmentActivity
FragmentActivity
(link)的Google文档中的重要信息:
Note: If you want to implement an activity that includes an action bar, you
should instead use the ActionBarActivity class, which is a subclass of this
one, so allows you to use Fragment APIs on API level 7 and higher.
如果您使用兼容性库,那么您希望扩展AppCompatActivity
(link)
查看这些类的继承层次结构,它们都有FragmentActivity
/ android.support.v4.app.FragmentActivity
作为父级。这也可能是你的问题。
原始答案:
您可以将Activity
的引用传递给Fragment
,然后在那里获得对Toolbar
的引用,例如:
在您的活动中:
// 'this' being the activity context
MyFragment theFragment = new MyFragment(this);
在你的片段中:
// in fragment, use the reference passed in the constructor
myActivityReference.setActionBarTitle("My Title");
// or do this
Toolbar theToolbar = myActivityReference.getSupportActionBar();
theToolbar.doTheThingsIWant(...);
或
您可以在片段中使用getActivity()
方法并将其投射为您的活动:
Toolbar theToolbar = ((MyActivity)getActivity()).getSupportActionBar();
我不确定演员是否需要......我无法记住。如果你愿意,可以试试。