NavigationDrawer 上的自定义字体
Posted
技术标签:
【中文标题】NavigationDrawer 上的自定义字体【英文标题】:Custom font on NavigationDrawer 【发布时间】:2015-10-26 15:46:46 【问题描述】:我正在尝试更改我的导航抽屉上的字体,我正在使用带有适配器的自定义 xml 文件,因此我可以成功更改 ListView 中每个元素的颜色和背景,但是我无法更改字体,androidStudio 给了我一个 null 对象引用 所以,我认为它没有找到 textview。我的代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
mDrawerListView = (ListView) inflater.inflate(
R.layout.fragment_navigation_drawer, container, false);
TextView lbl = (TextView) mDrawerListView.findViewById(R.id.section_label);
Typeface tf = Typeface.createFromAsset(getActivity().getAssets(),"fonts/Jaapokki-Regular.otf");
lbl.setTypeface(tf);
mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
selectItem(position);
);
mDrawerListView.setAdapter(new ArrayAdapter<String>(
getActionBar().getThemedContext(),
R.layout.fragment_main,
R.id.section_label,
new String[]
getString(R.string.title_section1),
getString(R.string.title_section2),
getString(R.string.title_section3),
"Acerca de...",
));
mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);
return mDrawerListView;
非常感谢!
【问题讨论】:
我怀疑 android 不支持 OpenType 字体。尝试改用 TrueType 字体。 ***.com/questions/1426244/…。或者尝试使用自定义适配器并从适配器的 getview() 方法更改字体。 是的,我正在另一个活动中使用它 【参考方案1】:试试这个
mDrawerListView.setAdapter(new ArrayAdapter<String>(getActionBar().getThemedContext(), R.layout.fragment_main,R.id.section_label, new String[]
getString(R.string.title_section1),
getString(R.string.title_section2),
getString(R.string.title_section3),
"Acerca de...",
)
@Override
public View getView(int position, View convertView, ViewGroup parent)
View v = super.getView(position, convertView, parent);
TextView tv=(TextView)v.findViewById(R.id.section_label);
tv.setTypeface(tf);
return v;
);
【讨论】:
我不知道把这个方法放在哪里,我会找出并告诉你一些事情,谢谢。 你只需要用我的代码替换你的setadapter代码, 是的!完美运行!谢谢!以上是关于NavigationDrawer 上的自定义字体的主要内容,如果未能解决你的问题,请参考以下文章