1.工具栏
这个概念,所接触的很多开发软件或工具,都会碰到。在手机开发的时候,可以进行导航、显示相应的标题等,使开发者不至于在应用程序中迷路。5.0使用Actionbar来实现,很多公司都会对该类进行定制,使用起来更加灵活。5.0之后使用Toolbar来取代之前的Actionbar,这个更加强大。
1.1 Toolbar类
1.显示程序所处的位置。
2.提供一些重要的交互功能,比如说搜索、跳转等。
3.实现导航功能,例如返回按钮等。
常用属性和方法:
app:title setTitle(参数) 设置应用程序主题
app:subtitle setSubtitle(参数) 设置小标题
app:navigation setNavigation(int resId) 导航图标
logo setLogo(Drawable drawable) 程序logo
titleTextColor setTitleTextColor(int color) 设置标题文字颜色
1.设计主界面.xml
= = = = = = = = = = =
2.设计菜单xml文件
步骤:
在res上右击,选择“new/andorid Resource Directory”,在弹出的对话框中,设置ResourceType为Menu,Directory Name采用默认值,即可创建menu文件夹。
在menu上右击,选择“new/menu Resourcefile”,输入文件名。
= = = = = = = = = = = = = = = =
3.修改主界面后台代码
..; ...; ..; ..; ..; { ( ) { .(); (..); () (..); .(..); .(); .(.); .(..); } }
2.底部导航栏
手机程序:QQ 拼夕夕 微信等,都会在程序下方放置导航。好处是可以进行单手操作,即用户单手完成界面切换,从而查看不同的信息。
2.1 BottomNavigationView类
用到了Fragment的知识,每个item都有一个icon和一个title组成,单击控制状态即可。
通话(电话) 通信录 设置
3.可扩展列表视图
一般用于数据的展开和折叠这种场景,即可以单独展开的列表视图。
ExpandableListView,是ListView的子类。本质上是一个AdapterView,既然是AdapterView,在显示数据的时候,就需要使用到适配器。适配器叫ExpandableAdapter,这个类派生于BaseExpandableListAdapter,需要重写setOnGroupClickListener()、setOnChildClickListener()、setOnGroupCollpaseListener()、setOnGroupExpandListener()方法。
实例
展示河南省、陕西省行政区信息的实例。
1.修改主界面
= = = = = = = = = = =
2.父项列表内容
= = = = = = = = = = = = = = = = =
3.子项列表内容
= = = = = = = =
4.主界面后台代码
..; ...; ..; ..; ..; ..; { ; []{,}; [][]{{,,},{,,}}; ( ) { .(); (..); (); } () { ()(..); (,,); .(); .(); .( .() { ( , , , ) { .(., [], .).(); ; } }); .( .() { ( , , , , ) { .(., [][], .).(); ; } }); .( .() { ( ) { .(., [], .).(); } }); .( .() { ( ) { .(., [], .).(); } }); } }
5.子项扩展代码
..; ..; ..; ..; ..; ..; ..; ..; { []; [][]; ; ( ,[] , [][] ) { . ; . ; . ; } () { .; } ( ) { [].; } ( ) { []; } ( , ) { [][]; } ( ) { ; } ( , ) { ; } () { ; } ( , , , ) { ; ; .(.()).(..,,); .(..); .(..); .([]); () .(..); .(..); ; } ( , , , , ) { .(.()).(..,,); () .(..); .([][]); ; } ( , ) { ; } }
6.程序运行效果
TextView tv_children_item=(TextView) convertView.findViewById(R.id.children_item);
//显示列表数据
tv_children_item.setText(childs[groupPosition][childPosition]);
return convertView;
}
@Override public boolean isChildSelectable(int i, int i1) { return true; }
}
### 6.程序运行效果