gpt4 book ai didi

android - 导航 View 中的自定义菜单项大小和文本大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:49:41 25 4
gpt4 key购买 nike

我正在使用代码自定义导航 View 中的文本高度和行高,它适用于 api21+,但相同的代码在 api 16 中不起作用。我怎样才能让它工作?

代码:

创建样式并使用 app:theme 将其应用于 NavigationView

<style name="NavigationViewStyle">
<item name="android:textSize">20sp</item> <!-- menu item text size-->
<item name="android:listPreferredItemHeightSmall">40dp</item><!-- menu item height-->
</style>

然后,使用 app:theme 将此样式应用于 NavigationView

<android.support.design.widget.NavigationView
...
...
app:theme="@style/NavigationViewStyle"
...
...


</android.support.design.widget.NavigationView>

最佳答案

在代码中,您可以使用此代码自定义 TextView 。试试这个,让我知道。

private final ArrayList<View> mMenuItems = new ArrayList<>();
final Menu navMenu = navigationView.getMenu();
// Install an OnGlobalLayoutListener and wait for the NavigationMenu to fully initialize
navigationView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// Remember to remove the installed OnGlobalLayoutListener
navigationView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
// Loop through and find each MenuItem View
for (int i = 0; i < navMenu.size(); i++) {
final String id = "nav_menuItem" + (i);
final MenuItem item = navMenu.findItem(getResources().getIdentifier(id, "id", getPackageName()));
navigationView.findViewsWithText(mMenuItems, item.getTitle(), View.FIND_VIEWS_WITH_TEXT);
}
// Loop through each MenuItem View and apply your custom Typeface

for (final View menuItem : mMenuItems) {
((TextView) menuItem).setTypeface(fontLight, Typeface.NORMAL);
}

}
});

关于android - 导航 View 中的自定义菜单项大小和文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35313302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com