在片段android里面访问Fragmentactvity的工具栏?

时间:2015-10-21 11:30:54

标签: android

Android Fragment相关查询我们如何使用工具栏中存在的fragmentActivty里面的工具栏我们在framelayout中的活动中替换

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

Toolbar toolbar = getActivity().findViewById(R.id.toolbar);

OR

Toolbar toolbar = getParentFragment().findViewById(R.id.toolbar);

取决于你的情况。

答案 1 :(得分:0)

我注意到您正在使用FragmentActivity

FragmentActivitylink)的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.

如果您使用兼容性库,那么您希望扩展AppCompatActivitylink

查看这些类的继承层次结构,它们都有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();

我不确定演员是否需要......我无法记住。如果你愿意,可以试试。