如何根据标题的长度调整工具栏的大小?

时间:2018-09-21 15:59:06

标签: java android material-design toolbar

根据我在其中设置工具栏标题的片段,但是某些标题很长,应用程序给出了三点:

enter image description here

我要显示的是完整的标题,而不是减小字母的大小,如果不增加工具栏的大小,那么,如果标题没有到达第二行,就好像它是包装内容。

这怎么可能?

我的XML工具栏:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:id="@+id/toolbar"
        android:layout_height="?attr/actionBarSize"
        android:theme="@style/Toolbar" />

</LinearLayout>

通过Java设置标题

((NavigationDrawerActivity) activity)
                .getSupportActionBar().setTitle(mytext);

1 个答案:

答案 0 :(得分:0)

我开发了一个自定义工具栏,该工具栏尝试尽可能地适合文本。您应该将此自定义工具栏设置为以下操作栏:https://developer.android.com/training/appbar/setting-up

这是我的自定义工具栏代码:

MyToolbar.java:

class MaintenanceLogSerializer(serializers.ModelSerializer):
    class Meta:
        model = MaintenanceLog
        fields = '__all__'


class MaintenanceOrderSerializer(serializers.ModelSerializer):
    status_code = serializers.IntegerField(source='status.status_code', read_only=True)
    order_log = MaintenanceLogSerializer(many=True, read_only=True)

    class Meta:
        model = MaintenanceOrder
        fields = '__all__'

toolbar_title_layout.xml:

package com.aminography.textapp;

import android.content.Context;
import android.support.annotation.Nullable;
import android.support.v7.widget.AppCompatTextView;
import android.support.v7.widget.Toolbar;
import android.util.AttributeSet;
import android.view.LayoutInflater;

public class MyToolbar extends Toolbar {

    private AppCompatTextView mTitleTextView;

    public MyToolbar(Context context) {
        super(context);
        mTitleTextView = LayoutInflater.from(context).inflate(R.layout.toolbar_title_layout, this).findViewById(R.id.titleTextView);
        addView(mTitleTextView);
    }

    public MyToolbar(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        mTitleTextView = LayoutInflater.from(context).inflate(R.layout.toolbar_title_layout, this).findViewById(R.id.titleTextView);
        addView(mTitleTextView);
    }

    public MyToolbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        mTitleTextView = LayoutInflater.from(context).inflate(R.layout.toolbar_title_layout, this).findViewById(R.id.titleTextView);
        addView(mTitleTextView);
    }

    @Override
    public void setTitle(int resId) {
        mTitleTextView.setText(resId);
    }

    @Override
    public void setTitle(CharSequence title) {
        mTitleTextView.setText(title);
    }

    @Override
    public void setTitleTextColor(int color) {
        mTitleTextView.setTextColor(color);
    }

}