Android 自定义标题栏

结合TitleView开源库与PopMenuMore开源库

Posted by GG on July 16, 2017

本库是结合TitleView开源库与PopMenuMore开源库写的一个自定义标题栏库。

效果图

Demo一共给出三种标题栏样式,如下图

使用方法

1、添加依赖

在工程的bulid.gradle中添加

	allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}  

在app的bulid.gradle中添加

dependencies {
        compile 'com.github.hwx95:TitleView:v1.0'
}

2、布局文件添加自定义标题

   <com.jarek.library.TitleView
    android:layout_marginTop="10dp"
    android:layout_width="match_parent"
    android:background="#0093fe"
    title:left_image="@mipmap/back_normal"
    title:title_name="标题"
    title:title_text_color="@android:color/white"
    title:right_text_two="@string/more"
    title:title_text_size="17sp"
    title:small_text_size="@dimen/title_text_small_size"
    title:right_image="@mipmap/bar_button_right"
    android:layout_height="50dp"
    android:id="@+id/title"/>  

3、初始化及点击事件

TitleView的监听

 titleView = (TitleView) findViewById(R.id.title);
    TextView back=titleView.getLeftBackTextTv();
    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(MainActivity.this,"我是返回!",Toast.LENGTH_LONG).show();
        }
    });  

先实例化TitleView,然后通过自定义TitleView里面的get方法,得到想要的控件实例。

PopMenuMore的初始化监听

initMenu();
setting = titleView.getRightImageIv();
setting.setOnClickListener(new View.OnClickListener() {
  @Override
    public void onClick(View view) {
        mMenu.showAsDropDown(setting);
        }
 });  

private void initMenu() {
mMenu = new PopMenuMore(this);
// mMenu.setCorner(R.mipmap.demand_icon_location);
// mMenu.setBackgroundColor(Color.parseColor("#ff8800"));
ArrayList<PopMenuMoreItem> items = new ArrayList<>();
items.add(new PopMenuMoreItem(OPTION, "选项"));
items.add(new PopMenuMoreItem(SETTING, "设置"));

mMenu.addItems(items);
mMenu.setOnItemSelectedListener(new PopMenuMore.OnItemSelectedListener() {
    @Override
    public void selected(View view, PopMenuMoreItem item, int position) {
        switch (item.id) {
            case OPTION:
                Toast.makeText(MainActivity.this,"我是选项!",Toast.LENGTH_LONG).show();
                break;
            case SETTING:
                Toast.makeText(MainActivity.this,"我是设置!",Toast.LENGTH_LONG).show();
                break;
        }
    }
});
}

最后附上Github Demo