美文网首页
Android - SnackBar

Android - SnackBar

作者: 乘风破浪的程序员 | 来源:发表于2018-07-26 16:14 被阅读11次

    snackbar layout 源码 design_layout_snackbar

    <?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.
    -->
    
    <view
        xmlns:android="http://schemas.android.com/apk/res/android"
        class="android.support.design.internal.SnackbarContentLayout"
        android:theme="@style/ThemeOverlay.AppCompat.Dark"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom">
    
        <TextView
            android:id="@+id/snackbar_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:paddingTop="@dimen/design_snackbar_padding_vertical"
            android:paddingBottom="@dimen/design_snackbar_padding_vertical"
            android:paddingLeft="@dimen/design_snackbar_padding_horizontal"
            android:paddingRight="@dimen/design_snackbar_padding_horizontal"
            android:textAppearance="@style/TextAppearance.Design.Snackbar.Message"
            android:maxLines="@integer/design_snackbar_text_max_lines"
            android:layout_gravity="center_vertical|left|start"
            android:ellipsize="end"
            android:textAlignment="viewStart"/>
    
        <Button
            android:id="@+id/snackbar_action"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/design_snackbar_extra_spacing_horizontal"
            android:layout_marginStart="@dimen/design_snackbar_extra_spacing_horizontal"
            android:layout_gravity="center_vertical|right|end"
            android:minWidth="48dp"
            android:visibility="gone"
            android:textColor="?attr/colorAccent"
            style="?attr/borderlessButtonStyle"/>
    
    </view>
    
    

    查看源码布局可知 snackbar_text 设置了 maxlines 和 ellipsize, 所以显示的文案资源最多显示2行,末尾用 … 代替。

    全部显示出文案资源

    val make = Snackbar.make(home_layout_root, desc, Snackbar.LENGTH_LONG)
                make.view.setBackgroundColor(resources.getColor(R.color.abc_btn_colored_borderless_text_material))
                val viewGroup = make.view as ViewGroup
                val contentLayout = viewGroup.getChildAt(0) as SnackbarContentLayout
                val messageView = contentLayout.getChildAt(0) as TextView
                val actionTextView = contentLayout.getChildAt(1) as TextView
                actionTextView.setTextColor(resources.getColor(R.color.tooltip_background_dark))
                messageView.textSize = 30f
                messageView.ellipsize = null
                messageView.maxLines = 10
    
    

    获取textview 重新设置maxlines 及ellipsize 值

    相关文章

      网友评论

          本文标题:Android - SnackBar

          本文链接:https://www.haomeiwen.com/subject/shvbmftx.html