在Settings应用中点击System->Language&input->Languages来到此界面
以上界面都属于Settings应用,点击Add a language跳转后的界面则在系统源码中,界面如下:
Settings进行了界面优化,此界面与它风格不统一,需要进行修改,最终修改的效果如下:
从Settings的源码可以看到他实际上是加载了系统中的一个Fragment到Settings中:LocalePickerWithRegion,继承自ListFragment。
由于ListFragment是公开的,第三方应用可能会调用,我们尽量不改他。
1.LocalePickerWithRegion的修改:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setHasOptionsMenu(true); //去掉搜索菜单
...
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
//注释此方法的代码,去掉搜索菜单
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ListView rawListView = view.findViewById(android.R.id.list);
if (rawListView != null)
rawListView.setDivider(null); //去掉ListView的分割线
View mListContainer = view.findViewById(com.android.internal.R.id.listContainer);
mListContainer.setBackgroundColor(Color.parseColor("#F2F3F5")); //修改ListFragment的整体背景
}
为了不影响ListFragment在LocalePickerWithRegion.onViewCreated中找到ListView将分割线去掉,修改背景。
2.SuggestedLocaleAdapter的修改
SuggestedLocaleAdapter是L