我们尝试了两种方法将自定义Snackbar(1)显示为伪装对话框,该对话框不会移动到屏幕底部但它并不会忽略当前的活动视图只是使其不透明。我知道它为什么在屏幕的中心,但我无法将其移动到底部。 (2)接下来是一个接管整个屏幕的视图,因为它是一个新的内容视图,我猜测它将取消当前的活动视图,但它位于屏幕的底部。 所以我的问题是如何使用设计编号1并将对话框移动到屏幕底部? 第二个问题如何停止设计编号2中的新视图从关闭当前活动的视图?经过仔细阅读和小小的思考和极端测试,我不认为这是可能的!我已经在下面发布了我的两种方法的代码。 XML文件使用相对布局作为基本容器。XML文件中的自定义视图Snackbar将不会显示屏幕底部
public void seeSB(){
setContentView(R.layout.custom_snackbar);
// Line of Code above shows XML file
// Line of code tested but no control over the "viewMyLayout"
//LayoutInflater inflater = LayoutInflater.from(ListActivity.this);
//final View viewMyLayout = inflater.inflate(R.layout.custom_snackbar, null);
//viewMyLayout.setEnabled(true);
Button btnAB = (Button) findViewById(R.id.btnAB);
btnAB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// viewMyLayout.setEnabled(false);
// Line above does not function
// CODE BELOW WORKS BUT FAR FROM elegant
setContentView(R.layout.activity_list);
//Intent intent = new Intent(ListActivity.this, ListActivity.class);
//startActivity(intent);
Toast.makeText(getApplicationContext(), "I WAS Clicked", Toast.LENGTH_SHORT).show();
}
});
}
public void displaySB(){
final Dialog openSnack = new Dialog(context);
openSnack.setContentView(R.layout.custom_snackbar);
Button btnAB = (Button)openSnack.findViewById(R.id.btnAB);
TextView tvSB =(TextView)openSnack.findViewById(R.id.tvSB);
//Dialog dialog = new Dialog(ListActivity.this);
//dialog.setContentView(Bottom);
// if YES delete Master Password from TABLE_MPW
btnAB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openSnack.dismiss();
Toast.makeText(getApplicationContext(), "I WAS Clicked", Toast.LENGTH_SHORT).show();
}
});
openSnack.show();
}
所以你想要一个小吃店在活动的底部没有解散活动。对? –
@AlokKumarVerma是的,我可以使用design.widget.CoordinatorLayout完成此操作,但是当我使用该XML文件进行不同大小设备的样式设置时,创建自定义XML文件将提供更少的代码 –