问题描述
我想显示 Toast 消息,我的布局是协调器布局,里面有一个底部应用栏。不会显示我的吐司消息。
activity_main
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/coordinatorLayoutActivityMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
style="@style/Widget.MaterialComponents.BottomAppBar.Colored">
<!-- Note: a Recycle view also can be used -->
<androidx.core.widget.nestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="100dp"
android:clipToPadding="false">
<!-- scrollable content -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/tv_main_Activity_test_text"/>
</androidx.core.widget.nestedScrollView>
<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/bottomAppBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
style="@style/Widget.MaterialComponents.BottomAppBar.Colored"
app:navigationIcon="@drawable/ic_menu_24"
app:menu="@menu/bottom_app_bar"
app:hideOnScroll="true"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_add_24"
app:layout_anchor="@id/bottomAppBar"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"
/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
主活动
在主活动中,即使我在 create 方法中创建了 Toast,也不会显示 Toast。我猜 Toast 是放在 BottomAppBar 下的。但我不知道如何解决这个问题。
package com.atadarvishnia.bottomappbars;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import com.google.android.material.bottomappbar.BottomAppBar;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
public class MainActivity extends AppCompatActivity {
private BottomAppBar bottomAppBar;
private FloatingActionButton fab;
private CoordinatorLayout coordinatorLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupViews();
Toast.makeText(MainActivity.this,"Search clicked!",Toast.LENGTH_SHORT).show();
bottomAppBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showSnackBar("Navigation clicked!","ok");
}
});
bottomAppBar.setonMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menuBottomAppBarSearch:
Toast.makeText(MainActivity.this,Toast.LENGTH_SHORT).show();
return true;
case R.id.menuBottomAppBarMore:
Toast.makeText(MainActivity.this,"More clicked!",Toast.LENGTH_SHORT).show();
return true;
default:
return false;
}
}
});
fab.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,MainActivity2.class));
}
});
}
private void setupViews() {
bottomAppBar = findViewById(R.id.bottomAppBar);
fab = findViewById(R.id.fab);
coordinatorLayout = findViewById(R.id.coordinatorLayoutActivityMain);
}
private void showSnackBar(String message,String action) {
int marginSide = 0,marginBottom = 240;
//create snack bar
Snackbar snackbar = Snackbar.make(coordinatorLayout,message,Snackbar.LENGTH_LONG);
snackbar.setAction(action,new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
snackbar.setActionTextColor(Color.GREEN);
//anchor snack bar top of floating action button.
snackbar.setAnchorView(fab);
//show snack bar
snackbar.show();
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)