ActionBar 搜索,tab
来源:互联网 发布:网上开店铺的软件 编辑:程序博客网 时间:2024/05/16 05:37
2. 继承ActionBarActivity
3. menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xxx="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"
xxxitcast:showAsAction="always"/>
<!-- Settings, should always be in the overflow -->
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
xxx:showAsAction="always"/>
</menu>`
4. 在Activity中
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
搜索
1. menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xxx="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"
xxx:actionViewClass="android.support.v7.widget.SearchView"
xxx:showAsAction="always"/>
<!-- Settings, should always be in the overflow -->
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
xxx:showAsAction="never">
</item>
</menu>
2. 自己处理ActionBar菜单的点击事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_search) {
Toast.makeText(getApplicationContext(), "搜索点击了", Toast.LENGTH_SHORT).show();
return true;
}
return super.onOptionsItemSelected(item);
}
处理ActionBar的返回
1. 清单文件配置
<activity
android:name="zz.xxx.googlepalyz11.DetailActivity"
android:label="@string/title_activity_detail"
android:parentActivityName="zz.xxx.googlepalyz11.MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="zz.xxx.googlepalyz11.MainActivity" />
</activity>
意思是点击DetailActivity可以返回MainActivity不用再代码添加返回的监听做处理
2. 让 ActionBar的返回可用
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
给ActionBar添加tab
1.添加一个状态选择器
<?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:drawable="@drawable/tab_unselected" android:state_focused="false" android:state_pressed="false" android:state_selected="false"/>
<item android:drawable="@drawable/tab_selected" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/>
<!-- Focused states (such as when focused with a d-pad or mouse hover) -->
<item android:drawable="@drawable/tab_unselected_focused" android:state_focused="true" android:state_pressed="false" android:state_selected="false"/>
<item android:drawable="@drawable/tab_selected_focused" android:state_focused="true" android:state_pressed="false" android:state_selected="true"/>
<!-- STATES WHEN BUTTON IS PRESSED -->
<!-- Non focused states -->
<item android:drawable="@drawable/tab_unselected_pressed" android:state_focused="false" android:state_pressed="true" android:state_selected="false"/>
<item android:drawable="@drawable/tab_selected_pressed" android:state_focused="false" android:state_pressed="true" android:state_selected="true"/>
<!-- Focused states (such as when focused with a d-pad or mouse hover) -->
<item android:drawable="@drawable/tab_unselected_pressed" android:state_focused="true" android:state_pressed="true" android:state_selected="false"/>
<item android:drawable="@drawable/tab_selected_pressed" android:state_focused="true" android:state_pressed="true" android:state_selected="true"/>
</selector>
2. 自定义样式
<resources>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
<!-- Support library compatibility -->
<item name="actionBarTabStyle">@style/MyActionBarTabs</item>
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</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>
3. 版本兼容 v11 文件夹下添加了一个更高版本的样式
<resources>
<!--
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<!-- API 11 theme customizations can go here. -->
<item name="android:actionBarTabStyle">@style/MyActionBarTabs</item>
</style>
</resources>
activity页面
/** 当 搜索框内容改变的时候调用 */
@Override
public boolean onQueryTextChange(String text) {
// Toast.makeText(getApplicationContext(), "change = "+text,
// Toast.LENGTH_SHORT).show();
UIUtils.showToast(getApplicationContext(), "change = " + text);
return true;
}
/** 当 按下回车的时候调用 */
@Override
public boolean onQueryTextSubmit(String text) {
// Toast.makeText(getApplicationContext(), "Submit = "+text,
// Toast.LENGTH_SHORT).show();
UIUtils.showToast(getApplicationContext(), "Submit = " + text);
return true;
}
可以得到点击搜索的什么;
4. 显示tab&添加tab
// setup action bar for tabs
ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
MyTabListener tabListener = new MyTabListener();
Tab tab = actionBar.newTab().setText("标签一").setTabListener(tabListener);
actionBar.addTab(tab);
tab = actionBar.newTab().setText("标签二").setTabListener(tabListener);
actionBar.addTab(tab);
tab = actionBar.newTab().setText("标签三").setTabListener(tabListener);
actionBar.addTab(tab);
tab = actionBar.newTab().setText("标签四").setTabListener(tabListener);
actionBar.addTab(tab);
- ActionBar 搜索,tab
- ActionBar Tab
- Actionbar tab + tab
- ActionBar with Tab
- ActionBar tab + Fragment
- ActionBar实现Tab导航
- ActionBar的Tab模式
- android actionbar tab style
- actionbar tab 字体大小设置
- actionbar tab 字体大小设置
- ActionBar实现Tab
- (Android 基础知识) ActionBar.Tab---导航Tab(标签)
- ActionBar之Tab的使用
- 【Android】使用Actionbar Tab导航
- actionBar + viewPager实现活动tab
- 使用ActionBar实现Tab导航
- ActionBar Tab与ViewPager整合
- ActionBar 控件实现Tab页
- Keras 实现 LSTM在20_newsgroup新闻数据集
- python算法和数据结构笔记--汉诺塔问题超详细递归过程图解(堆栈数据结构)
- Palindrome Number|Leetcode
- PCL可视化显示点云
- INSERT 语句中列的数目大于 VALUES 子句中指定的值的数目。VALUES 子句中值的数目必须与 INSERT 语句中指定的列的数目匹配。
- ActionBar 搜索,tab
- 定时任务调度工具之Quartz(一)
- c++ new 的相关
- UVA 10112
- 欢迎使用CSDN-markdown编辑器
- 工作笔记——jQuery的事件绑定
- android:TextView
- 机器学习:梯度下降算法
- 浅析Java类和数据结构中常用的方法