SnackBar 笔记(二)样式美化

不会使用snackbar去这里http://blog.csdn.net/sdjianfei/article/details/51583023 

</pre>note:对是snackbar的样式、左右侧textview的字体、颜色等进行自定义,给左侧textview加上了监听 点击可进行dismiss;<p></p><p>                                                                        ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓好了    上硬菜,准备好刀叉与卫生纸。↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓</p><p>首先做一个snackbar圆角的selector  或者shape</p><p></p><pre code_snippet_id="1709614" snippet_file_name="blog_20160606_2_1696911" name="code" class="html"><?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <!--圆角-->
            <corners android:radius="4dp" />
            <solid android:color="#cc1A71E5" />
        </shape>

    </item>
</selector>
以下是定义在Baseactivity中的方法

  public Snackbar getSnackbar(TextView v, String leftStr, String rightStr) {
        snackbar = Snackbar.make(v, leftStr, Snackbar.LENGTH_LONG).setAction(rightStr, new View.OnClickListener() {
            @Override
            public void onClick(View v) {
// 此处根据需要设置监听
            }
        });
        Snackbar.SnackbarLayout snacklayout = (Snackbar.SnackbarLayout) snackbar.getView();//snackd布局
//                snack背景
//                snacklayout.setAlpha(0.3f);//包括了文本的透明度!323532
        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(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 此处根据需要设置监听
                snackbar.dismiss();
            }
        });
//        设置snackbar在界面中的布局
        ViewGroup.LayoutParams params = snacklayout.getLayoutParams();
        LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(params.width, params.height);
        ll.setMargins(3, 0, 3, 0);
        ll.gravity = Gravity.TOP;
        snacklayout.setLayoutParams(ll);
        return snackbar;
    }
再BaseActivity的子类中调用  

  snackbar1 = getSnackbar(tv, "左侧文本", "右侧文本");
                snackbar1.show();

就是这样;

各位司机还可对我的方法进行修改,修改为适应自己的app风格的snackbar,我对snackbar布局的了解就是两个textview源码xml如下

<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2015 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
-->

<merge xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
            android:id="@+id/snackbar_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:paddingTop="@dimen/snackbar_padding_vertical"
            android:paddingBottom="@dimen/snackbar_padding_vertical"
            android:paddingLeft="@dimen/snackbar_padding_horizontal"
            android:paddingRight="@dimen/snackbar_padding_horizontal"
            android:textAppearance="@style/TextAppearance.Design.Snackbar.Message"
            android:maxLines="@integer/snackbar_text_max_lines"
            android:layout_gravity="center_vertical|left|start"
            android:ellipsize="end"/>

    <TextView
            android:id="@+id/snackbar_action"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/snackbar_extra_spacing_horizontal"
            android:layout_marginStart="@dimen/snackbar_extra_spacing_horizontal"
            android:layout_gravity="center_vertical|right|end"
            android:background="?attr/selectableItemBackground"
            android:paddingTop="@dimen/snackbar_padding_vertical"
            android:paddingBottom="@dimen/snackbar_padding_vertical"
            android:paddingLeft="@dimen/snackbar_padding_horizontal"
            android:paddingRight="@dimen/snackbar_padding_horizontal"
            android:visibility="gone"
            android:textAppearance="@style/TextAppearance.Design.Snackbar.Action"/>

</merge><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/lmp-mr1-supportlib-release/frameworks/support/design/res/layout/layout_snackbar_include.xml -->


说白了就是对两个textview进行修改 改成自己喜欢的样式;

突兀的结束了。








  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值