您的位置:首页 > 其它

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();

   }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: