多行浮动动作按钮小吃栏

时间:2019-01-07 15:46:55

标签: android android-studio android-snackbar

当我单击“操作”按钮时,小吃栏仅显示两行文本,而第三行未显示

这是 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();
        }
    });
 .......

2 个答案:

答案 0 :(得分:2)

实际上,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();

答案 1 :(得分:0)

此代码对我有用

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();
}