我有一个xml,我使用片段文件进行了很多活动,但我的问题是我无法在工具栏中显示我想要的文本,我使用那个xml,因为我有一个导航抽屉,我需要处理某些事情所以我必须这样做。
我的xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".StatusActivity"
android:orientation="vertical" >
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
style="@style/ToolBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="@dimen/abc_action_bar_default_height_material" />
</RelativeLayout>
我的一项活动:
public class GroupChatActivity extends ActionBarActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_base_layout);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle("Groups history");
Aniways.init(this);
if(savedInstanceState == null)
{
FragmentManager manager = getSupportFragmentManager();
Fragment fragment = GroupChatFragment.newInstance(getIntent().getIntExtra("uid", 0));
manager.beginTransaction().add(R.id.frame_container, fragment).commit();
}
}
}
正如您所见,我尝试将标题设置为操作栏,但它不起作用。
答案 0 :(得分:39)
getSupportActionBar().setDisplayShowTitleEnabled(true);
答案 1 :(得分:20)
设置,
app:title="@string/my_title"
在android.support.v7.widget.Toolbar的声明中,硬编码工具栏中的标题。
以编程方式设置标题,
Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
toolbar.setTitle("my title");
setSupportActionBar(toolbar);
在您的活动课程中。
答案 2 :(得分:8)
试试这个..这个方法对我有用.. !!希望它可以帮助某人.. !!
<android.support.v7.widget.Toolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/my_awesome_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:singleLine="true"
android:text="Toolbar Title"
android:textColor="@android:color/white"
android:textSize="18sp"
android:textStyle="bold" />
</android.support.v7.widget.Toolbar>
修改强>
您也可以使用它。
setSupportActionBar(toolbar);
if (getSupportActionBar() != null)
getSupportActionBar().setTitle("Toolbar title");
答案 3 :(得分:1)
尝试toolbar.setTitle('Groups history');
答案 4 :(得分:1)
getActionBar().setTitle("Groups History");
或者如果您使用的是AppCompat
个库;
getSupportActionBar().setTitle("Groups History");
答案 5 :(得分:0)
我做了一个自定义操作栏。
使用此代码布局iguepardos_action_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/blanco"
android:minHeight="?attr/actionBarSize">
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:singleLine="true"
android:text="Toolbar Title"
android:textColor="@color/naranja"
android:textSize="18sp" />
</android.support.v7.widget.Toolbar>
在我的Class扩展AppCompatActivity中,我有这个:
protected void onCreate(Bundle savedInstanceState) {
....
....
getSupportActionBar().setDisplayShowCustomEnabled(true); // is for specify use custom bar
getSupportActionBar().setCustomView(R.layout.iguepardos_action_bar); // my custom layout
getSupportActionBar().setDisplayHomeAsUpEnabled(true); // Button for come back
View mCustomView = getSupportActionBar().getCustomView(); // Set the view
TextView TitleToolBar = (TextView) mCustomView.findViewById(R.id.toolbar_title); // find title control
TitleToolBar.setText("The Title Show"); // Set the Title
}
答案 6 :(得分:0)
我实际上必须获得toolbar_title才能将文本设置为每个不同的活动:
toolbar = findViewById(R.id.toolbar);
toolbarTitle = findViewById(R.id.toolbar_title); //<----- here
toolbarTitle.setText(getString(R.string.my_activity_toolbar_title));
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
答案 7 :(得分:0)
我花了大约一天的时间寻找问题的原因。 supportActionBar?.title = "SomeTitle"
和supportActionBar?.setDisplayShowTitleEnabled(true)
均无效,也无法从此处的答案中使用自定义工具栏进行黑客攻击。
我的活动正在使用CollapsingToolbarLayout
,但没有显示任何标题,也没有显示清单中的label
,也没有动态设置标题。但是示例ScrollingActivity
(新建-活动-...)显示了标题。
最后,我建立了一个示例项目,复制了MyActivity
和ScrollingActivity
并浏览了差异。
layout_height
和AppBarLayout
的 CollapsingToolbarLayout
必须设置为match_parent
或固定大小。所有。请参见下面的工作代码。
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="180dp"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay"
>
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:toolbarId="@id/toolbar"
app:contentScrim="?attr/colorPrimary"
>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:layout_collapseMode="pin"
/>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
答案 8 :(得分:0)
如果标题颜色为白色,工具栏也为白色,则不会区分它。因此,请尝试更改工具栏的颜色
答案 9 :(得分:0)
鉴于以下代码对我有用:
Toolbar myToolBar = findViewById(R.id.my_toolbar);
setSupportActionBar(myToolBar);
getSupportActionBar().setTitle(getString(R.string.toolbar_title_note));
首先我尝试使用 getSupportActionBar().setDisplayShowTitleEnabled(true);
,然后不使用它。这两种情况都适用。
这些是我的项目的 gradle 设置:
minSdkVersion 16
targetSdkVersion 30
compileSdkVersion 30
buildToolsVersion "30.0.3"