SnackBar封装

来源:互联网 发布:防御矩阵 觉醒 steam 编辑:程序博客网 时间:2024/06/09 19:27

SnackBar学习笔记(二)

工具类(友情提示:将代码放入标签<pre></pre> 中 完美显示)

/************************************************* * @desc Snackbar工具类 * @auther LiJianfei * @time 2016/8/2 10:00 ************************************/public class SnackUtil {    /**     * 生成一个snackbar     *     * @param viewRight     需要设置监听的右侧View     * @param leftStr       左侧提示语     * @param leftListener  左侧监听  view.getId()=2131492975     * @param rightStr      右侧响应语     * @param rightListener 右侧监听 view.getId()=2131492976 更正: 这里是不正确的,id值会因为控件改变而改变,不能传入监听对象     * @return     */    public static boolean getSnackbar(final View viewRight, String leftStr, View.OnClickListener leftListener, String rightStr, View.OnClickListener rightListener) {        Snackbar snackbar = Snackbar.make(viewRight, leftStr, Snackbar.LENGTH_LONG).setAction(rightStr, rightListener);        Snackbar.SnackbarLayout snacklayout = (Snackbar.SnackbarLayout) snackbar.getView();//snackd布局//                snack背景        snacklayout.setBackgroundResource(R.drawable.sel_snack);//                右侧文本(监听可在外部设置)        TextView lefttv = (TextView) snacklayout.findViewById(R.id.snackbar_text);        TextView actiontv = (TextView) snacklayout.findViewById(R.id.snackbar_action);        actiontv.setTextColor(Color.parseColor("#FF8040"));//此处控制透明度        lefttv.setTextColor(Color.parseColor("#FF8040"));//                左侧文本        lefttv.setOnClickListener(leftListener);//        设置snackbar在界面中的布局        ViewGroup.LayoutParams params = snacklayout.getLayoutParams();        LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(params.width, params.height);        ll.setMargins(100, 0, 100, 0);        ll.gravity = Gravity.BOTTOM;//        snacklayout.setLayoutParams(ll);        snackbar.show();        return true;// 临时测试用  实际应用可随意改    }}

调用方式

/************************************************* * @desc xxxx网首页 * @auther LiJianfei * @time 2016/8/2 8:43 ************************************/public class MainActivity extends BaseActivity implements View.OnClickListener {    private TextView textView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        textView = fView(R.id.tv);    }    public void showsnack(View v) {        SnackUtil.getSnackbar(textView, "左侧提示", this, "右侧提示", this);//        SnackUtil.getInstance().getSnackbar(textView, "左侧提示", this, "右侧提示", this);    }    @Override    public void onClick(View view) {//        DebugLogUtil.getInstance().Debug(view.getId() + "snackbar  id值测试");        switch (view.getId()) {            case Constant.snackLeft:// 2131492975                showToast("左侧响应");                break;            case Constant.snackRight: // 2131492976                showToast("右侧响应");                break;        }    }}
1 0
原创粉丝点击