Toolbar title添加滚动效果

Toolbar的初始化

在toolbar 的初始化工程中,我们通常会使用一下方式:

toolbar = (Toolbar) findViewById(R.id.toolbar);
        if (toolbar == null) {
            return;
        }
        setSupportActionBar(toolbar)

而对于标题的初始化:

getSupportActionBar().setTitle("");

toolbar 添加自动滚动效果

通过java反射的方式获取Toolbar 中的成员属性。

public class ToolbarUtils {
    public static TextView getToolbarTitleView(Toolbar toolbar) {

        try {

            Field field = toolbar.getClass().getDeclaredField("mTitleTextView");
            field.setAccessible(true);

            Object object = field.get(toolbar);
            if (object !=null) {
                TextView mTitleTextView = (TextView) object;
                return mTitleTextView;
            }
            Ln.d("toolbarUtils :" + "mTitleTextView do not find");
        } catch (IllegalAccessException e) {
            Ln.d("toolbarUtils :" + "IllegalAccessException");
        } catch (NoSuchFieldException e) {
            Ln.d(e);
        }catch (Exception e) {
            Ln.d("toolbarUtils :" + "paser error");
        }
        return null;
    }

    public static void setMarqueeForToolbarTitleView(final Toolbar toolbar) {
        toolbar.post(new Runnable() {
            @Override
            public void run() {
                TextView mTitleTextView = getToolbarTitleView(toolbar);
                if (mTitleTextView == null) {
                    Ln.d("toolbarUtils :" + "mTitleTextView is null");
                    return;
                }
                mTitleTextView.setHorizontallyScrolling(true);
                mTitleTextView.setMarqueeRepeatLimit(-1);
                mTitleTextView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
                mTitleTextView.setSelected(true);
                Ln.d("toolbarUtils :" + "mTitleTextView set successfully ");
            }
        });

    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,466评论 25 708
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 锦瑟无端五十弦,一弦一柱思华年。 庄生晓梦迷蝴蝶,望帝春心托杜鹃。 沧海月明珠有泪,蓝田日暖玉生烟。 此情可待成追...
    守夜人MISS阅读 214评论 0 0
  • 这一周快过去了,孩子们的假期也开始了。我没有写日记也有一周了吧!家里事情太多了,写得东西也太多了,真的是一点时间也...
    张子洋妈妈阅读 268评论 0 4
  • 我的
    云门石阅读 219评论 0 0