如何根据文本长度以编程方式更改工具栏高度和字体大小
How to change Toolbar height and font size programmatically depending of text length
我有很多不同的 Toolbar
标题,我从以前的 activity 槽意图:
title = getIntent().getStringExtra("title");
然后我将它们设置到我的新 activity 工具栏,如下所示:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setTitle(title);
但是字体太大,只占了一行工具栏:
这是示例标题之一:
将雷达距离传播千米转换为微秒时间和 VICE-VERSA
我想知道有没有办法动态更改 Toolbar
高度和文字大小以适应这个标题?这可以通过编程方式完成吗?
谢谢
试试这样创建自定义工具栏
<android.support.v7.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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Did you know"
android:id="@+id/myTitle"
android:textColor="@android:color/white" />
</LinearLayout>
</android.support.v7.widget.Toolbar>
并使用 activity 的主题作为 NoActionBar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
TextView myTitle = (TextView) toolbar.findViewById(R.id.myTitle);
你可以这样试试:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_top"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="@color/action_bar_bkgnd"
app:theme="@style/ToolBarTheme" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Toolbar Title"
android:layout_gravity="center"
android:id="@+id/toolbar_title" />
</android.support.v7.widget.Toolbar>
并在 java 文件中;
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_top);
TextView mTitle = (TextView) toolbarTop.findViewById(R.id.toolbar_title);
我有很多不同的 Toolbar
标题,我从以前的 activity 槽意图:
title = getIntent().getStringExtra("title");
然后我将它们设置到我的新 activity 工具栏,如下所示:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setTitle(title);
但是字体太大,只占了一行工具栏:
这是示例标题之一: 将雷达距离传播千米转换为微秒时间和 VICE-VERSA
我想知道有没有办法动态更改 Toolbar
高度和文字大小以适应这个标题?这可以通过编程方式完成吗?
谢谢
试试这样创建自定义工具栏
<android.support.v7.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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Did you know"
android:id="@+id/myTitle"
android:textColor="@android:color/white" />
</LinearLayout>
</android.support.v7.widget.Toolbar>
并使用 activity 的主题作为 NoActionBar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
TextView myTitle = (TextView) toolbar.findViewById(R.id.myTitle);
你可以这样试试:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_top"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="@color/action_bar_bkgnd"
app:theme="@style/ToolBarTheme" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Toolbar Title"
android:layout_gravity="center"
android:id="@+id/toolbar_title" />
</android.support.v7.widget.Toolbar>
并在 java 文件中;
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_top);
TextView mTitle = (TextView) toolbarTop.findViewById(R.id.toolbar_title);