多语言展示
当前在线:1934今日阅读:155今日分享:35

AcitonBar自定义布局

Android系统中ActionBar默认的布局不美观且难于控制,通过为ActionBar自定义布局的方式可以灵活控制ActionBar。
工具/原料
1

android集成开发环境eclipse、ADT

2

android sdk 3.0及以上

方法/步骤
1

自定义Activity主题和ActionBar样式   在新建的android工程的res/values/styles.xml添加自定义ActionBar样式的代码和自定义Activity主题的代码,并在AndroidMainfest.xml中给需要使用该自定义ActionBar的Activity中加入该主题:(1)自定义ActionBar样式代码如下:        (2)自定义Activity主题代码如下:        (3)在AndroidManifest.xml文件中需要使用该自定义ActionBar的Activity中加入该主题如下:                                                                     

2

在Activity中加载ActionBar的自定义布局(1)ActionBar加载自定义布局的代码封装如下:/** * 设置ActionBar的布局 * @param layoutId 布局Id *  * */ public void setActionBarLayout( int layoutId ){    ActionBar actionBar = getActionBar( );    if( null != actionBar ){        actionBar.setDisplayShowHomeEnabled( false );        actionBar.setDisplayShowCustomEnabled(true);        LayoutInflater inflator = (LayoutInflater)   this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        View v = inflator.inflate(layoutId, null);        ActionBar.LayoutParams layout = new     ActionBar.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);        actionBar.setCustomView(v,layout);    } }(2)在onCreate()方法中调用该方法,并传入自定义的布局文件ID:@Override protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_diy_action_bar);     // 自定义actionbar的布局    setActionBarLayout( R.layout.actionbar_port_layout ); }(3)自定义布局文件“actionbar_port_layout.xml ”代码如下:               

3

在Action中监听ActionBar中按钮的点击事件/** * 实现onClick方法,在这里面监听actionbar中按钮的点击事件  *  * */ public void onClick( View v ){    switch( v.getId( ) ){    case R.id.menuBtnId:{        showToast( this, "menuBtn" );    }    break;    case R.id.noteBtnId:{         showToast( this, "noteBtn" );    }    break;    case R.id.downloadBtnId:{         showToast( this, "downloadBtn" );    }    break;    case R.id.editBtnId:{        showToast( this, "editBtn" );    }    break;    default:{     }    break;    } }

源码链接:

http://download.csdn.net/detail/zmywly/6922375

注意事项

自定义actionbar的布局时,应通过自定义actionbar的样式为其设置默认背景以避免在进入窗口耗时较长时会首先显示actionbar默认的背景。

推荐信息