Как изменить размер панели инструментов в соответствии с длиной заголовка? - PullRequest
0 голосов
/ 21 сентября 2018

Согласно фрагменту, в котором я устанавливаю заголовок моей панели инструментов, но некоторые заголовки очень длинные, и приложение ставит три точки:

enter image description here

Я хочу, чтобы отображался полный заголовок, а не уменьшался размер буквы, если не увеличивался размер панели инструментов, чтобы заголовок не достигал строки, которая помещается в секунду, как если бы она былаwrapcontent.

Как это можно сделать?

Моя панель инструментов в 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 голосов
/ 21 сентября 2018

Я разработал пользовательскую панель инструментов, которая старается максимально уместить текст.Вы должны установить эту пользовательскую панель инструментов как панель действий следующим образом: https://developer.android.com/training/appbar/setting-up.

Вот мой собственный код панели инструментов:

MyToolbar.java:

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);
    }

}

toolbar_title_layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="16dp"
    android:paddingRight="16dp">

    <android.support.v7.widget.AppCompatTextView
        android:id="@+id/titleTextView"
        style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:autoSizeMinTextSize="9sp"
        app:autoSizeStepGranularity="0.5sp"
        app:autoSizeTextType="uniform" />

</FrameLayout>
...