当前位置: 代码迷 >> 综合 >> SnackBar 笔记(二)样式美化
  详细解决方案

SnackBar 笔记(二)样式美化

热度:19   发布时间:2024-01-13 18:55:55.0

不会使用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() {@Overridepublic void onClick(View v) {
// 此处根据需要设置监听}});Snackbar.SnackbarLayout snacklayout = (Snackbar.SnackbarLayout) snackbar.getView();//snackd布局
//                snack背景
//                snacklayout.setAlpha(0.3f);//包括了文本的透明度!323532snacklayout.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() {@Overridepublic 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"><TextViewandroid: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"/><TextViewandroid: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进行修改 改成自己喜欢的样式;

突兀的结束了。