简单 android Snackbar 不工作
simple android Snackbar not working
我试图在单击按钮后在我的应用程序的 MainActivity 中显示一个非常简单的 Snackbar。此按钮还会导致新 activity 的开始。但是在我点击它之后,没有 Snackbar 显示并且新的 Activity 开始了。我的 MainActivity 是一个 RelativeLayout,我不太想将它更改为 CoordinatorLayout。
<RelativeLayout
<TextView
android:id="@+id/tvReceived"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Messages Received"
android:textSize="25sp"
android:gravity="center"
android:textStyle="bold"
android:textAllCaps="false"
android:textColor="#3079ab"
android:layout_marginTop="10dp"/>
<LinearLayout
android:id="@+id/linearMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvReceived"
android:layout_marginTop="7dp"
android:layout_marginBottom="50dp">
<FrameLayout
android:id="@+id/receivedList"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</FrameLayout>
</LinearLayout>
<Button
android:id="@+id/newMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Message"
android:textAllCaps="false"
android:textSize="16sp"
android:layout_alignParentBottom="true"
android:layout_alignEnd="@+id/linearMain"
android:layout_marginBottom="32dp" />
</RelativeLayout>
Java Snackbar 代码:
Button btnNewSms = (Button) findViewById(R.id.newMessage);
btnNewSms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar mySnackbar = Snackbar.make(v, R.string.new_message, Snackbar.LENGTH_LONG);
mySnackbar.show();
Intent intent = new Intent(MainActivity.this, ComposeActivity.class);
startActivity(intent);
}
});
怎么了?提前致谢!
注释您的意图和 运行 代码,Activity
在单击按钮时启动,您看不到 Snackbar
。
您可以通过点击 Snackbar
中的按钮打开 Activity
,方法是
public void showMsgSnack(String msg) {
snackbar = Snackbar.make(getCurrentFocus(), "Your Message here", Snackbar.LENGTH_INDEFINITE).setAction("Open", new View.OnClickListener() {
@Override
public void onClick(View v) {
//Your Intent here
}
});
snackbar.show();
}
尝试一下,如果有效请告诉我
我试图在单击按钮后在我的应用程序的 MainActivity 中显示一个非常简单的 Snackbar。此按钮还会导致新 activity 的开始。但是在我点击它之后,没有 Snackbar 显示并且新的 Activity 开始了。我的 MainActivity 是一个 RelativeLayout,我不太想将它更改为 CoordinatorLayout。
<RelativeLayout
<TextView
android:id="@+id/tvReceived"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Messages Received"
android:textSize="25sp"
android:gravity="center"
android:textStyle="bold"
android:textAllCaps="false"
android:textColor="#3079ab"
android:layout_marginTop="10dp"/>
<LinearLayout
android:id="@+id/linearMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvReceived"
android:layout_marginTop="7dp"
android:layout_marginBottom="50dp">
<FrameLayout
android:id="@+id/receivedList"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</FrameLayout>
</LinearLayout>
<Button
android:id="@+id/newMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Message"
android:textAllCaps="false"
android:textSize="16sp"
android:layout_alignParentBottom="true"
android:layout_alignEnd="@+id/linearMain"
android:layout_marginBottom="32dp" />
</RelativeLayout>
Java Snackbar 代码:
Button btnNewSms = (Button) findViewById(R.id.newMessage);
btnNewSms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar mySnackbar = Snackbar.make(v, R.string.new_message, Snackbar.LENGTH_LONG);
mySnackbar.show();
Intent intent = new Intent(MainActivity.this, ComposeActivity.class);
startActivity(intent);
}
});
怎么了?提前致谢!
注释您的意图和 运行 代码,Activity
在单击按钮时启动,您看不到 Snackbar
。
您可以通过点击 Snackbar
中的按钮打开 Activity
,方法是
public void showMsgSnack(String msg) {
snackbar = Snackbar.make(getCurrentFocus(), "Your Message here", Snackbar.LENGTH_INDEFINITE).setAction("Open", new View.OnClickListener() {
@Override
public void onClick(View v) {
//Your Intent here
}
});
snackbar.show();
}
尝试一下,如果有效请告诉我