如何自定义ActionBar显示标题在中间位置
2015-04-14 11:29
148 查看
在Android3.0以后就开始引入了ActionBar了,这篇重点记录如何自定义ActionBar让标题显示在中间的位置。虽然android手机有自带的返回键,不过当今很多应用还是添加actionbar显示标题在中间,在左侧加入一个返回按钮。
添加一个ActionBar很简单,在AndroidManifest.xml文件中指定Application或者Activity的theme为Theme.Holo或其子类即可。添加完ActionBar后,要实现题目所述功能,首先需要自定义你自己需要的标题文件布局,这里,我给出一个示例(action_bar_title):
接下来就可以在activity中直接实现需求:
在activity中通过ActionBar actionBar = getActionBar();获得ActionBar实例,然后通过actionBar.setCustomView(titleView, lp);设置自己定义的标题布局。
代码链接:http://download.csdn.net/detail/tan313/8593441
添加一个ActionBar很简单,在AndroidManifest.xml文件中指定Application或者Activity的theme为Theme.Holo或其子类即可。添加完ActionBar后,要实现题目所述功能,首先需要自定义你自己需要的标题文件布局,这里,我给出一个示例(action_bar_title):
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff0000"> <ImageButton android:id="@+id/image_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/fh" android:layout_marginLeft="12dp" android:gravity="center" android:layout_gravity="left|center" /> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="标题" android:gravity="center" android:background="#ff0000" android:layout_gravity="center" android:textSize="20sp" /> </FrameLayout>
接下来就可以在activity中直接实现需求:
package com.example.actionbar; import android.app.ActionBar; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageButton; import android.widget.Toast; public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); ActionBar.LayoutParams lp =new ActionBar.LayoutParams( ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT, Gravity.CENTER); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View titleView = inflater.inflate(R.layout.action_bar_title, null); actionBar.setCustomView(titleView, lp); actionBar.setDisplayShowHomeEnabled(false);//去掉导航 actionBar.setDisplayShowTitleEnabled(false);//去掉标题 actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setDisplayShowCustomEnabled(true); ImageButton imageBtn = (ImageButton) actionBar.getCustomView().findViewById(R.id.image_btn); imageBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "返回", Toast.LENGTH_SHORT).show(); } }); } }
在activity中通过ActionBar actionBar = getActionBar();获得ActionBar实例,然后通过actionBar.setCustomView(titleView, lp);设置自己定义的标题布局。
代码链接:http://download.csdn.net/detail/tan313/8593441
相关文章推荐
- 如何自定义ActionBar显示标题在中间位置
- 如何自定义ActionBar显示标题在中间位置 可用
- android 自定义Dialog如何控制View显示位置
- delphi如何将子窗体的显示位置设置到主窗体的中间
- Django 中如何针对自定义的 View 做分页显示
- 怎样在pb里实现无标题栏 如何使PB窗口总在最上层 显示或隐藏Windows的任务栏
- 如何自定义UIPickerView中文本的大小和文本靠左或靠右显示?
- Android ActionBar高级自定义——设置标题居中和添加控件
- android 自定义Dialog背景透明及显示位置设置的方法
- 汇编实验:彩色字符中间位置显示字符串
- 如何自定义Struts2表单验证后的错误信息显示格式/样式
- ecmall模板编辑中的标题如何自定义读取
- 如何将自定义异常的信息显示在jsp页面上
- linux 如何显示一个文件的某几行(中间几行)
- Android scrollview嵌套listview运行后最先显示出来的位置不在顶部而是中间问题
- linux 如何显示一个文件的某几行(中间几行)
- 如何解决网站标题图标favicon.ico在搜狗浏览器不显示?
- 微信分享时如何自定义标题,简介和图片
- android 自定义Dialog背景透明及显示位置设置
- 如何解决 "Powered by ECShop"每次显示的位置都不同的问题