繁体   English   中英

带有多行的浮动操作按钮 Snackbar

[英]Floating Action Button Snackbar with multi line

当我单击操作按钮时,小吃栏只显示两行文本,第三行不显示

这是XML内容

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    app:srcCompat="@android:drawable/ic_menu_help" />

我在我的活动中使用此代码

......
fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Hello word1" + "\n" + "Hello word2" + "\n" + "Hello word3", Snackbar.LENGTH_LONG).setAction("Action", null).show();
        }
    });
 .......

实际上 Android Snackbar有一个TextView来显示您的文本。 因此,通过在TextView设置多行,您可以实现您的目标。 试试这个代码,它对我有用。

 Snackbar snackbar = Snackbar.make(Yourview, "Your Text", Snackbar.LENGTH_LONG);
 View sbView = snackbar.getView();

 TextView textView =  sbView.findViewById(android.support.design.R.id.snackbar_text);

 // For multi-line text, limit max line count.
 textView.setMaxLines(3);

 snackbar.show();

这段代码对我有用

public void onCreate(Bundle savedInstanceState) {
    //....
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showSnack(view, "My three line message", 5000);
        }
    });
     //....
}


public void showSnack(View view, String text, int duration) {
    snackbar = Snackbar.make(view, text, duration);
    View sbView = snackbar.getView();
    TextView textView = sbView.findViewById(android.support.design.R.id.snackbar_text);
    textView.setTextSize(16);
    textView.setMaxLines(3);
    snackbar.show();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM