SnackBar 笔记(二)样式美化

来源:互联网 发布:简述网络整合营销理论 编辑:程序博客网 时间:2024/05/17 01:18

不会使用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
原创粉丝点击