码迷,mamicode.com
首页 > 其他好文 > 详细

ActionBar 使用

时间:2016-05-12 19:20:17      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

1. 引用v7-appcompat 库
2. Activity继承ActionBarActivity

3. android:theme="@style/Theme.AppCompat.Light" >

4.res/menu中的布局改为

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          yourapp:showAsAction="ifRoom" 
          yourapp:actionViewClass="android.support.v7.widget.SearchView"/>
     
</menu>

 xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
是为了向下兼容(3.0之前版本)

5.搜索功能

	  Override
		public boolean onCreateOptionsMenu(Menu menu) {
			getMenuInflater().inflate(R.menu.activity_main, menu);
			SearchView searchView = (SearchView) menu.findItem(R.id.action_search)
					.getActionView();
			searchView.setOnQueryTextListener(this);//  搜索的监听
			return true;
		}   
		  // 当搜索提交的时候
		@Override
		public boolean onQueryTextSubmit(String query) {
			Toast.makeText(getApplicationContext(), query, 0).show();
			return true;
		}
		// 当搜索的文本发生变化
		@Override
		public boolean onQueryTextChange(String newText) {
			//Toast.makeText(getApplicationContext(), newText, 0).show();
			return true;
		}
/** 处理actionBar菜单条目的点击事件 */
<span style="white-space:pre">	</span>public boolean onOptionsItemSelected(MenuItem item) {
<span style="white-space:pre">		</span>if (item.getItemId() == R.id.action_search) {
<span style="white-space:pre">			</span>Toast.makeText(getApplicationContext(), "搜索", 0).show();
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>return drawerToggle.onOptionsItemSelected(item)|super.onOptionsItemSelected(item);
<span style="white-space:pre">	</span>}
6.返回按钮处理,在oncreate中

ActionBar actionBar = getSupportActionBar();
		actionBar.setDisplayHomeAsUpEnabled(true);//返回按钮可以被点击
		actionBar.setHomeButtonEnabled(true);
<activity  android:name=".DetailActivity"
            android:label="@string/app_detail"
             android:parentActivityName="com.xxx.MainActivity"
            >
             <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.xxx.MainActivity" />
        </activity>
lable优先使用自己配置的title。

7.实现ActionBar  Tab标签(类似indicator)

①在Drawable 目录下 写了一个标签的状态选择器

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<!-- STATES WHEN BUTTON IS NOT PRESSED -->

    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false"
          android:state_pressed="false"
          android:drawable="@drawable/tab_unselected" />
    <item android:state_focused="false" android:state_selected="true"
          android:state_pressed="false"
          android:drawable="@drawable/tab_selected" />

    <!-- Focused states (such as when focused with a d-pad or mouse hover) -->
    <item android:state_focused="true" android:state_selected="false"
          android:state_pressed="false"
          android:drawable="@drawable/tab_unselected_focused" />
    <item android:state_focused="true" android:state_selected="true"
          android:state_pressed="false"
          android:drawable="@drawable/tab_selected_focused" />

<!-- STATES WHEN BUTTON IS PRESSED -->

    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false"
          android:state_pressed="true"
          android:drawable="@drawable/tab_unselected_pressed" />
    <item android:state_focused="false" android:state_selected="true"
        android:state_pressed="true"
        android:drawable="@drawable/tab_selected_pressed" />

    <!-- Focused states (such as when focused with a d-pad or mouse hover) -->
    <item android:state_focused="true" android:state_selected="false"
          android:state_pressed="true"
          android:drawable="@drawable/tab_unselected_pressed" />
    <item android:state_focused="true" android:state_selected="true"
          android:state_pressed="true"
          android:drawable="@drawable/tab_selected_pressed" />
</selector>
②实现自定义主题 them.xml

<?xml version="1.0" encoding="utf-8"?>
	<resources>
	     <!-- the theme applied to the application or activity -->
	    <style name="CustomActionBarTheme"
	           parent="@style/Theme.AppCompat.Light">
	    <item name="android:actionBarTabStyle">@style/MyActionBarTabs</item> 
	
	        <!-- Support library compatibility -->
	        <item name="actionBarTabStyle">@style/MyActionBarTabs</item>
	    </style>
	
	    <!-- ActionBar tabs styles -->
	    <style name="MyActionBarTabs"
	           parent="@style/Widget.AppCompat.ActionBar.TabView">
	        <!-- tab indicator -->
	        <item name="android:background">@drawable/actionbar_tab_indicator</item>
	
	        <!-- Support library compatibility -->
	        <item name="background">@drawable/actionbar_tab_indicator</item>
	    </style>
	</resources>
android:theme="@style/CustomActionBarTheme"
③在代码中添加

		ActionBar actionBar = getSupportActionBar();
		actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
		Tab tab1=actionBar.newTab().setText("标签一").setTabListener(new MyTabListener());
		actionBar.addTab(tab1);





ActionBar 使用

标签:

原文地址:http://blog.csdn.net/gaobaoshen1/article/details/51350690

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!