I have Snackbar
in my application. I want to add Edittext
in Snackbar
to accept some input. How can I add an Edittext
in Snackbar
?
Asked
Active
Viewed 2,443 times
-4

Charuක
- 12,953
- 5
- 50
- 88

Priyanka G
- 141
- 2
- 6
-
1Try [this](http://stackoverflow.com/questions/42384892/how-to-make-modification-android-snackbar-containing-with-layoutinflater-button) to including editText to Snackbar with button and response – deya tri Feb 22 '17 at 08:57
2 Answers
3
//Custom layouts are discouraged due to the intended use of Snackbars,but this will do your task!
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.linear_layout_root);
final Snackbar snackbar = Snackbar.make(linearLayout, "Hey Whats Up", Snackbar.LENGTH_INDEFINITE);
Snackbar.SnackbarLayout layout = (Snackbar.SnackbarLayout) snackbar.getView();
// Inflate your custom view with an Edit Text
LayoutInflater objLayoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View snackView = objLayoutInflater.inflate(R.layout.custom_snac_layout, null); // custom_snac_layout is your custom xml
layout.addView(snackView, 0);
snackbar.show();

Charuක
- 12,953
- 5
- 50
- 88
1
You need to inflate new view and add it to snackBar's layout.
// Make snackbar
Snackbar snackbar = Snackbar.make(rootView, "", Snackbar.Snackbar.LENGTH_INDEFINITE);
// Fetch the layout
Snackbar.SnackbarLayout sLayout = (Snackbar.SnackbarLayout) snackbar.getView();
// remove the default textView
TextView textView = (TextView) sLayout.findViewById(android.support.design.R.id.snackbar_text);
textView.setVisibility(View.GONE);
// Inflate custom view (have an edittext in this)
View newView = mInflater.inflate(R.layout.edittext_layout, null);
sLayout.setView(newView,0);

Nayan Srivastava
- 3,655
- 3
- 27
- 49