【问题标题】:Change Custom Toolbar Text更改自定义工具栏文本
【发布时间】:2020-05-21 16:37:07
【问题描述】:

无法更改工具栏上的文本。我已经进行了搜索,但没有看到任何结果。

我已经尝试了很多东西的组合,但也许会弹出一些东西。 这是我为我的活动尝试的最后一件事的代码。

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarCustom);
TextView textView = (TextView)   toolbar.findViewById(R.id.toolbarTextView);
textView.setText("String");

这是我的 XML 代码

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_item_action"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.carson.tryeverything.ItemActionActivity"
android:orientation="vertical"

   >
<android.support.v7.widget.Toolbar
    android:id="@+id/toolbarCustom"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    android:background="?attr/colorPrimary"
    >

    <TextView
        android:id="@+id/toolbarTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:ellipsize="end"
        android:gravity="center"
        android:maxLines="1"
        android:text="Line one"
          android:textAppearance="@android:style/TextAppearance.WindowTitle"
        android:visibility="visible" />
</android.support.v7.widget.Toolbar>


 <FrameLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"

    >


    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:id="@+id/map"

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginBottom="6dp"
        android:layout_marginTop="0dp"
        />

  </FrameLayout>

  </LinearLayout>
  android:textAppearance="@android:style/TextAppearance.WindowTitle"
        android:visibility="visible" />
 </android.support.v7.widget.Toolbar>

最后是我的清单文件。可能需要打扫一下

 <application
    android:name="android.support.multidex.MultiDexApplication"
    android:allowBackup="true"
    android:icon="@mipmap/icon2"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:theme="@style/AppTheme.NoActionBar"/>
    <activity
        android:name=".SplashScreen"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
       >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />

            <meta-data
                android:name="com.google.android.gms.version"
                android:value="@integer/google_play_services_version" />
            <meta-data
                android:name="com.google.android.geo.API_KEY"
                android:value="no spoilers" />
        </intent-filter>
    </activity>
    <activity android:name=".ItemActionActivity"
        android:theme="@style/AppTheme.NoActionBar"
        />


    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />

    <activity
        android:name=".MapsActivity"
        android:label="@string/title_activity_maps"/>
</application>

我有三个活动,即 Splash,具有 2 打列表视图选项的主屏幕,然后是最终的活动屏幕,我希望工具栏根据您单击的内容显示自定义标题。

【问题讨论】:

  • 你在使用 supportActionBar() 吗?
  • 请贴出所有涉及Toolbar的代码。
  • 我们也需要你的第三个活动的代码(有工具栏的那个)。
  • 对不起,我认为这是多余的不必要的信息,添加了我的工具栏编码的第三个活动,我也尝试了涉及 supportActionBar 的各种代码,但没有任何结果。虽然如果有特定的代码你想让我尝试让我知道,我会让你知道会发生什么。

标签: android textview android-toolbar


【解决方案1】:

你忘了设置这个:

 setSupportActionBar(toolbar);

还有这个:

getSupportActionBar().setDisplayShowTitleEnabled(false); 

您的活动如下:

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

setSupportActionBar(toolbar);

TextView textView = (TextView)toolbar.findViewById(R.id.toolbarTextView);
textView.setText("String");

getSupportActionBar().setDisplayShowTitleEnabled(false);

【讨论】:

  • 这正是我需要的!
【解决方案2】:

会是这样。 Java 代码:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); //here toolbar is your id in xml
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("String"); //string is custom name you want

【讨论】:

    【解决方案3】:

    以下是在 Android Kotlin 中更改自定义工具栏文本的方法:

    首先转到 Manifest 文件,然后在您的活动标签中添加 android:theme="@style/AppTheme.NoActionBar" 行

    <activity
              android:name=".MainActivity"
              android:label="@string/app_name"
              android:theme="@style/AppTheme.NoActionBar">
     </activity>
    

    第二次去你的活动并添加以下内容:

     override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            setSupportActionBar(toolbar)
            toolbar.title = "My New Title"
    }
    

    【讨论】:

      【解决方案4】:

      我不明白,为什么有人不简单地在 xml 中编写所有工具栏自定义文本?为什么要在 .java 文件中编写代码? 例如

      <androidx.appcompat.widget.Toolbar
                  android:id="@+id/toolbar"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:background="@color/colorPrimary"
                  android:elevation="4dp"
                  android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                  app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
      
                  <TextView
                      android:id="@+id/tv_toolbar_custom"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:textColor="#fff"
                      android:textSize="@dimen/_22ssp"
                      android:textStyle="bold"
                      android:text="Profile"/>
              </androidx.appcompat.widget.Toolbar>
      

      【讨论】:

      • 通常在我的项目中,标题取决于传递给活动的数据。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 2013-08-20
      • 2015-05-02
      • 1970-01-01
      相关资源
      最近更新 更多