Sử dụng Snackbar
Snackbar được hiện thị ở biên dưới màn hình, nó chứa nội dung text thông báo và tùy chọn một hành động nào đó. Nó tự động hiện ẩn đi giống như Toast. Có thế vuốt ngang trên nó để ẩn đi hoặc nó chứa nút bấm hành động.
Tạo Snackbar đơn giản
Snackbar snackbar = Snackbar
.make(main_content, "Thông báo - Snackbar đơn giản", Snackbar.LENGTH_LONG);
snackbar.show();
Thêm một nút Action vào Snackbar
Snackbar snackbar = Snackbar
.make(main_content, "Không có mạng", Snackbar.LENGTH_LONG)
.setAction("Thử lại", new View.OnClickListener() {
@Override
public void onClick(View view) {
//Code khi bấm vào nút thư lại ở đây
}
});
snackbar.show();
Thiết lập màu sắc cho Snackbar
Snackbar snackbar = Snackbar
.make(main_content, "Không có mạng", Snackbar.LENGTH_LONG)
.setAction("Thử lại", new View.OnClickListener() {
@Override
public void onClick(View view) {
//Code khi bấm vào nút thư lại ở đây
}
});
// Changing message text color
snackbar.setActionTextColor(Color.RED);
// Changing action button text color
View sbView = snackbar.getView();
sbView.setBackgroundColor(Color.YELLOW);
TextView textView = (TextView) sbView
.findViewById(android.support.design.R.id.snackbar_text);
textView.setTextColor(Color.BLUE);
snackbar.show();
Code ví dụ Snackbar
layout.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
android:id="@+id/main_content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/snackbar1"
android:text="Tạo Snackbar đơn giản"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/snackbar2"
android:text="Tạo Snackbar có hàm Callback"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/snackbar3"
android:text="Tạo Snackbar với tùy chọn màu"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/floatbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_margin="16dp"
app:srcCompat="@android:drawable/ic_dialog_email"
app:layout_anchor="@id/content"
app:layout_anchorGravity="bottom|right|end"/>
</android.support.design.widget.CoordinatorLayout>
Code Java
public class MainActivity extends AppCompatActivity {
CoordinatorLayout main_content;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
main_content = findViewById(R.id.main_content);
findViewById(R.id.snackbar1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar snackbar = Snackbar.make(main_content, "Thông báo - Snackbar đơn giản", Snackbar.LENGTH_LONG);
snackbar.show();
}
});
findViewById(R.id.snackbar2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar snackbar = Snackbar
.make(main_content, "Không có mạng", Snackbar.LENGTH_LONG)
.setAction("Thử lại", new View.OnClickListener() {
@Override
public void onClick(View view) {
//Code khi bấm vào nút thư lại ở đây
}
});
snackbar.show();
}
});
findViewById(R.id.snackbar3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar snackbar = Snackbar
.make(main_content, "Không có mạng", Snackbar.LENGTH_LONG)
.setAction("Thử lại", new View.OnClickListener() {
@Override
public void onClick(View view) {
//Code khi bấm vào nút thư lại ở đây
}
});
// Changing message text color
snackbar.setActionTextColor(Color.RED);
// Changing action button text color
View sbView = snackbar.getView();
sbView.setBackgroundColor(Color.YELLOW);
TextView textView = (TextView) sbView.findViewById(android.support.design.R.id.snackbar_text);
textView.setTextColor(Color.BLUE);
snackbar.show();
}
});
setClickFloatButton();
}
void setClickFloatButton() {
FloatingActionButton floatingActionButton = findViewById(R.id.floatbutton);
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar mySnackbar = Snackbar.make(view, "Thông báo ...", Snackbar.LENGTH_LONG);
mySnackbar.show();
}
});
}
}
