我正在使用一个名为Snackbar的控件来自第三方库 - github.com/navasmdc/MaterialDesignLibrary。
问题是它会像Toast一样自动关闭。
我想做什么:它应该留到我点击btn
new SnackBar(ActSplash.this,
"Do you want change color of this button to red?",
"yes",
new View.OnClickListener() {
@Override
public void onClick(View v) {
ButtonFlat btn = (ButtonFlat) findViewById(R.id.buttonSnackBar);
//btn.setTextColor(Color.RED);
}
}).show();
new SnackBar(ActSplash.this,
"Do you want change color of this button to red?",
"yes", new View.OnClickListener() {
@Override
public void onClick(View v) {
ButtonFlat btn = (ButtonFlat) findViewById(R.id.buttonSnackBar);
//btn.setTextColor(Color.RED);
}
}).setIndeterminate(true)
.show();
这显示错误无法解析show()
如何防止android snackbar关闭
Snackbar
.make(((ActMedicalRecordDetailNew)getActivity()).getMainContent(), R.string.snackBarNoNetConnectivity, Snackbar.LENGTH_LONG)
.setAction(R.string.snackBarTryAgain, new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = getActivity().getIntent();
getActivity().finish();
startActivity(intent);
}
})
.show();
编辑:
Snackbar
现在是新的Android Support Design library的一部分。如果你想无限期地显示它,你可以使用LENGTH_INDEFINITE
作为持续时间。 。您应该删除您正在使用的第三方库。例如。
Snackbar.make(layout, R.string.snackBarNoNetConnectivity, Snackbar.LENGTH_INDEFINITE)
.show()
老答案
你必须在打电话给.setIndeterminate(true)
之前打电话给show()
final SnackBar tmp = new SnackBar(ActSplash.this,
"Do you want change color of this button to red?",
"yes",
new View.OnClickListener() {
@Override
public void onClick(View v) {
ButtonFlat btn = (ButtonFlat) findViewById(R.id.buttonSnackBar);
//btn.setTextColor(Color.RED);
}
});
tmp.setIndeterminate(true);
tmp.show();
snackbar.setDuration(Snackbar.LENGTH_INDEFINITE);
简单地做
Snackbar.make(layout, "Some text", Snackbar.LENGTH_INDEFINITE)
.show();