设置高度并相对于MenuItem将actionViewClass TextView垂直居中

问题描述

我有以下抽屉菜单项:

<item android:title="@string/drawer_entries">
    <menu>
        <item
            android:id="@+id/item_createEntry"
            android:icon="@drawable/ic_action_new"
            android:title="@string/drawer_crate_entry" />
        <item
            android:id="@+id/item_MyEntries"
            android:icon="@drawable/ic_action_storage"
            android:title="@string/drawer_my_entries"
            app:actionViewClass="android.widget.TextView"
            />
    </menu>
</item>

,并且我尝试将TextView小部件的背景设置为红色圆圈: (R.drawable.unsubmitted_badge)

<shape
    xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke
        android:width="1dp"
        android:color="@color/black" />
    <solid android:color="@color/red" />
    <padding
        android:left="10dp"
        android:right="10dp" />
    <corners android:radius="25dp" />
</shape>

我遇到的问题是,我无法找到一种方法来设置TextView的高度并使它相对于MenuItem垂直居中。默认情况下,TextView高度将填充父MenuItem。

enter image description here

,如果我设置TextView的高度,它将不再相对于MenuItem垂直居中。设置TextView的边距似乎没有任何效果。

enter image description here

MenuItem item = navigationView.getMenu().findItem(R.id.item_MyEntries);
TextView badge = (TextView) item.getActionView();
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(new ViewGroup.LayoutParams(55,55));
layoutParams.setMargins(0,20,0);
badge.setLayoutParams(layoutParams);
badge.setGravity(Gravity.CENTER_VERTICAL);
badge.setTypeface(null,Typeface.BOLD);
badge.setTextColor(ContextCompat.getColor(this,R.color.white));
badge.setText(String.valueOf(unsubmittedCount));
badge.setBackgroundResource(R.drawable.unsubmitted_badge);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...