ActionBar和Drawlayout的简单应用
2016-06-11 19:01
429 查看
ActionBar(动作栏)和Drawlayout(侧滑)
ActionBar(动作栏)是Android3.0推出的一个新的对象,此对象最主要的目的是在标题栏更好的为用户呈现一些view组件,并实现与用户的交互,例如呈现menu对象1)获得ActionBar
getActionBar():(前提activity的主题,必须包括ActionBar)
其主要代码:
//1、获得 ActionBar(前提activity的主题,必须包括ActionBar)
ActionBar aBar=getActionBar();
//2、设置ActionBar
//2.1设置显示action向左的箭头,并且设置home button
aBar.setDisplayHomeAsUpEnabled(true);
//2.2设置home button可点击
aBar.setHomeButtonEnabled(true);
//2.3隐藏标题(会先显示,在隐藏)
aBar.setDisplayShowTitleEnabled(false);
//2.4默认隐藏home图片
aBar.setDisplayShowHomeEnabled(false);
//3设置ActionBar的导航模式
//3.1设置tab导航
aBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//3.2添加tab导航
aBar.addTab(aBar.newTab().setText("Tab01").setTabListener(this));
aBar.addTab(aBar.newTab().setText("Tab02").setTabListener(this));
此方法用于实现点击事件,实现不同的点击功能
@Override
public
boolean onOptionsItemSelected(MenuItem
item) {
if(item.getItemId()==android.R.id.home){
finish();//关闭当前页面
}
return
super.onOptionsItemSelected(item);
}
2)修改ActionBar
A.设置全屏显示:
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
B.自定义主题:
1)格式:
<!-- 自定义主题 -->
<stylename="MyCustomTheme"parent="@android:style/Theme.Holo.Light">
<itemname="android:actionBarStyle">@style/MyActionBarStyle</item>
</style>
<style
name="MyActionBarStyle"parent="@android:style/Widget.Holo.ActionBar">
<itemname="android:background">@drawable/actionbar_shape_01</item>
<item
name="android:displayOptions">useLogo</item>
</style>
2)引用:
<activity
android:name="com.tarena.yy.viewpager.SecondActivity"
android:theme="@style/MyCustomTheme"
>
</activity>
DrawerLayout(侧滑)
Drawlayout是Android官方实现侧滑操作给定的一个API。对象的配置:布局的设置:drawerlayout必须是根元素(其中FrameLayout布局是可以换成其他的布局,listview在DrawerLayout里显示,是不可以滑动的)
其部分代码(android:layout_gravity="left"是必须有的属性):
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/dlId"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/frameId"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text01"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
<ListView
android:id="@+id/lsId"
android:layout_width="260dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="#ff669900"></ListView>
</android.support.v4.widget.DrawerLayout>
Java代码中实现如下:
private
void setDrawLayout() {
//初始化drawerlayout
dLayout=(DrawerLayout) findViewById(R.id.dlId);
//设置监听
drawerToggle=new ActionBarDrawerToggle(
this,
dLayout,
R.drawable.ic_launcher,//侧滑时点击的图片
R.string.open,
R.string.close);
dLayout.setDrawerListener(drawerToggle);
}
private
void setListView(){
//获得ListView
lsv=(ListView) findViewById(R.id.lsId);
//构建适配器
ArrayAdapter< String > adapter=new ArrayAdapter<String>
(this,android.R.layout.simple_expandable_list_item_1, list);
//关联适配器
lsv.setAdapter(adapter);
//添加监听事件
lsv.setOnItemClickListener(this);
}
点击时执行此方法,将选中的内容加载到textview上显示,然后关闭DrawerLayout
@Override
public
void onItemClick(AdapterView<?> parent, View
view, int
position, long
id) {
String text=(String)
parent.getItemAtPosition(position);
textView.setText(text);
//关闭listview
dLayout.closeDrawer(lsv);
}
主要是实现点击actionbar中的图标实现侧滑并将“向左箭头”图标更换个图片
//设置actionbar换图片
getActionBar().setDisplayHomeAsUpEnabled(true);
//设置可点击
getActionBar().setHomeButtonEnabled(true);
/**此方法在选项菜单创建之前执行*/
@Override
protected
void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
//同步菜单(更换图标)
drawerToggle.syncState();
}
相关文章推荐
- 数据结构与算法之七 栈
- 数据结构与算法之七 栈
- 数据结构与算法之七 栈
- 第九届河南省省赛E题 nyoj 1276 机器设备
- Java TimeZone
- 比较排序
- 图解Activity四种启动模式
- C#高效绘图(转)
- Spring MVC之LocaleResolver(解析用户区域)
- IOS UIDevice & IOS检测屏幕旋转实例
- java类的热替换
- 【BZOJ 3754】【JZOJ 3410]】Tree之最小方差树 -
- hdu5187 zhx's contest题解(快速幂快速积)
- 61. Rotate List
- PDO预处理防sql注入
- 【51CTO学院三周年】学业有成啦
- Windows下体验Linux Ubuntu系统&&安装JDK,Android SDK,Android Studio
- 从零开始山寨Caffe·壹:仰望星空与脚踏实地
- Asp.net Session 与Cookie的应用
- java调用Oracle分页存储过程