Android 片段中的工具栏标题
当片段被更改时,如何更改Android 片段中的工具栏标题,android,Android,当片段被更改时,如何更改Textview内部工具栏?我的工具栏位于BaseActivity中,因此我可以在所有活动中使用 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSiz
Textview
内部工具栏
?我的工具栏位于BaseActivity
中,因此我可以在所有活动中使用
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/AppTheme.PopupOverlay">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="4dp"
android:layout_marginLeft="20dp"
ndroid:layout_marginRight="attr/actionBarSize"
android:layout_marginTop="4dp"
android:textColor="@color/colorAccent2"
android:textSize="19sp"
tools:ignore="HardcodedText" />
</FrameLayout>
</android.support.v7.widget.Toolbar>
您可以使用以下行轻松更改标题:
((MyAppCompatBaseActivity)getActivity()).getSupportActionBar().setTitle("Hello World!");
编辑:
我刚刚看到您的工具栏中有一个文本视图
。因此,要设置标题,请在BaseActivity中执行以下操作:
public class BaseActivity extends AppCompatActivity {
TextView textViewTitle;
@Override
public void onCreate(Bundle savedInstanceState) {
// Other Code
textViewTitle = (TextView) findViewById(R.id.toolbar_title);
}
public void setTitle(String title) {
textViewTitle.setText(title);
}
}
然后在片段中,只需执行以下操作:
((BaseActivity)getActivity()).setTitle("Hello World!");
只需在onCreateView()方法中执行此操作即可
编辑1:
要在中心制作标题
,您需要制作布局
,如下所示
将文本视图
和工具栏在基本活动
中公开。现在在片段中使用以下代码
((BaseActivity)getActivity()).yourTextView.setText("HOME");
只需添加到代码中
((MainActivity) getActivity()).getSupportActionBar().setTitle("Yeeee");
那没用。因为我的片段在选项卡布局中,它为我的所有片段提供了标题相同的标题。如果我将e.x的片段从第1个更改为第2个或从第3个更改为第2个,它似乎可以工作,但不会更新标题。为什么?保持这行((BaseActivity)getActivity()).setTitle(“Hello World!”)代码>在你的片段的onResume()
中。当然是的,这应该行得通,真的很讨厌片段秀在garavity(中)than@AlimovShohrukh请遵循此链接,最好在答案中解释更多内容。。。它可能对未来有同样问题的用户更有用…我建议扩展您的答案。可能与上面的@Eric B.答案重复。这确实是正确的答案。这个答案绝对是重复的。
((BaseActivity)getActivity()).yourTextView.setText("HOME");
((MainActivity) getActivity()).getSupportActionBar().setTitle("Yeeee");