【Android】一个简单又实用的toolbar

在很多软件中都可以看到风格统一的标题栏,上面包括返回键,当前页的名称等,下面详细分析

【Android】一个简单又实用的toolbar_第1张图片【Android】一个简单又实用的toolbar_第2张图片     



这里我们在布局文件中引用了一个toolbar,下面是toolbar的布局文件:



    

    

    

    

    






然后新建一个class,名字叫做BaseActivity让它继承Activity或者AppCompatActivity都可以,然后在coding你的BaseActivity


import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.ifreshwing.speedshooting.common.NoDoubleClickListener;


public class BaseActivity extends AppCompatActivity {

    private TextView toolbar_string, toolbar_left_tv, toolbar_right_tv;
    private ImageView toolbar_left_im, toolbar_right_im;
    private RelativeLayout toolbar;

    public TextView getToolbar_string() {
        return toolbar_string;
    }

    public int getToolbarHeight() {
        toolbar = (RelativeLayout) findViewById(R.id.toolbar);
        return toolbar.getHeight();
    }

    public void setToolbar_string(String str) {
        toolbar_string = (TextView) findViewById(R.id.toolbar_title);
        toolbar_string.setText(str);
    }

    public TextView getToolbar_left_tv() {
        return toolbar_left_tv;
    }

    public void setToolbar_left_tv(String str) {
        toolbar_left_tv = (TextView) findViewById(R.id.toolbar_left_tv);
        if (!str.equals("")) {
            toolbar_left_tv.setText(str);
        }
        toolbar_left_tv.setVisibility(View.VISIBLE);
        toolbar_left_tv.setOnClickListener(new NoDoubleClickListener() {
            @Override
            public void onNoDoubleClick(View v) {
                finish();
            }
        });
    }

    public TextView getToolbar_right_tv() {
        return toolbar_right_tv;
    }

    public void setToolbar_right_tv(String str) {
        toolbar_right_tv = (TextView) findViewById(R.id.toolbar_right_tv);
        toolbar_right_tv.setText(str);
        toolbar_right_tv.setVisibility(View.VISIBLE);
    }

    public ImageView getToolbar_left_im() {
        return toolbar_left_im;
    }

    public void setToolbar_left_im(int id) {
        toolbar_left_im = (ImageView) findViewById(R.id.toolbar_left_im);
        toolbar_left_im.setImageResource(id);
        toolbar_left_im.setVisibility(View.VISIBLE);
        toolbar_left_im.setOnClickListener(new NoDoubleClickListener() {
            @Override
            public void onNoDoubleClick(View v) {
                finish();
            }
        });
    }

    public ImageView getToolbar_right_im() {
        return toolbar_right_im;
    }

    public void setToolbar_right_im(int id) {
        toolbar_right_im = (ImageView) findViewById(R.id.toolbar_right_im);
        toolbar_right_im.setImageResource(id);
        toolbar_right_im.setVisibility(View.VISIBLE);
    }

    public void hindAll() {
        if (toolbar_left_im != null) {
            toolbar_left_im.setVisibility(View.GONE);
        }
        if (toolbar_left_tv != null) {
            toolbar_left_tv.setVisibility(View.GONE);
        }
        if (toolbar_right_im != null) {
            toolbar_right_im.setVisibility(View.GONE);
        }
        if (toolbar_right_im != null) {
            toolbar_right_im.setVisibility(View.GONE);
        }
    }
}

然后在需要的Activity的布局文件加入
<include
    android:id="@+id/toolbar"
    layout="@layout/toolbar" />

在Activity的onCreate()方法写这两行代码就可以了

setToolbar_string("设置");
setToolbar_left_tv("返回");

这样我们app风格不仅统一了,而且返回都可以不用点返回键了,是不是很简单呢?

你可能感兴趣的:(Android)