android 代码混搭,Android代码之路:ActionBar的使用

ActionBar简介

ActionBar是安卓3.0以后新增的导航栏功能,用以代替传统屏幕顶端的标题栏。它标识了用户当前操作界面的位置,并提供了额外的用户动作、界面导航等功能。通过ActionBar可以方便的让系统自动的适配不同尺寸的屏幕。

4dcd0429770b

actionbar.png

1.App Icon:可显示APP的icon,也可用其他图标代替。

2.视图切换

3.Action Buttons:放置一些重要的软件功能

4.Action overflow:不常用的操作项目一般放入Action OverFlow

开发环境:

1.JDK1.8

2.Android Studio 2.0

Demo1:ActionBar的显示与隐藏

此demo演示了ActionBar在手机屏幕上的显示和隐藏。

首先在AndroidManifest清单文件中设置activity主题样式

android:name=".ActionBarActivity"

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

java代码:

import android.support.v7.app.ActionBar;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

public class ActionBarActivity extends AppCompatActivity {

private ActionBar actionBar;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_hide_action_bar);

actionBar = getSupportActionBar();

}

/**

* 设置按钮的点击事件

*/

public void onClick(View view) {

switch (view.getId()) {

case R.id.btn_show: //actionbar的显示

actionBar.show();

break;

case R.id.btn_hide://actionbar的隐藏

actionBar.hide();

break;

}

}

}

Demo2:ActionBar白天模式与黑夜模式切换

此demo演示了ActionBar的白天模式和黑夜模式的切换。

首先在AndroidManifest清单文件中设置activity主题样式

android:name=".ChangeModeActivity"

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

java代码为:

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.support.v7.app.AppCompatDelegate;

import android.view.View;

public class ChangeModeActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_change_style);

}

/**

* 设置按钮的点击事件

*/

public void onClick(View view){

switch (view.getId()){

case R.id.btn_daylight://切换为白天模式

getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);

recreate();

break;

case R.id.btn_moonlight://切换为黑夜模式

getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);

recreate();

break;

}

}

}

Demo3:ActionBar与SerchView的混搭运用

如果你想在ActionBar上添加控件,需要做的步骤:

1.需要重新声明一个命名空间,Demo中的app是自己定义的,注意将将后缀更改成res-auto。

2.用自己定义的协议进行编写,即将showAsAction和actionViewClass前面的android改成app。

menu文件夹下布置xml资源文件

xmlns:app="http://schemas.android.com/apk/res-auto">

android:id="@+id/item_searchview"

android:icon="@mipmap/ic_launcher"

android:title="搜索"

app:showAsAction="always|collapseActionView"

app:actionViewClass="android.support.v7.widget.SearchView" />

java代码:

import android.os.Bundle;

import android.support.v4.view.MenuItemCompat;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.SearchView;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

//将资源文件加载到menu对象上

getMenuInflater().inflate(R.menu.menu_searchview, menu);

MenuItem item = menu.findItem(R.id.item_searchview);

SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);

return true;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值