EdgeToEdge模式下BottomNavigationView图标不显示问题求助
将BottomNavigationView的高度设置为标准56dp,但开启EdgeToEdge功能时,图标完全不显示。只有当增大其高度、关闭EdgeToEdge,或者设置itemPaddingBottom为0dp时,才会显示一小部分图标。
已自行查找解决方案,还咨询了ChatGPT与Gemini,耗时约2-3小时仍未解决,附上相关Java代码与XML布局,恳请提供帮助。
Java代码
import android.os.Bundle; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import com.google.android.material.bottomnavigation.BottomNavigationView; public class Main extends AppCompatActivity { BottomNavigationView bottomNavMenu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); bottomNavMenu = findViewById(R.id.bottom_nav_menu); bottomNavMenu.setOnItemSelectedListener(item -> { int itemId = item.getItemId(); if (itemId == R.id.Gmaps) { replaceFragment(new GmapsFragment()); } return true; }); } private void replaceFragment(Fragment fragment) { FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction().replace(R.id.frameLayout, fragment).setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).commit(); } }
XML布局
<LinearLayout 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/main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".Main"> <FrameLayout android:id="@+id/frameLayout" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> </FrameLayout> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottom_nav_menu" android:layout_width="match_parent" android:layout_height="56dp" app:itemIconSize="24dp" app:itemPaddingBottom="8dp" app:menu="@menu/bottom_nav_menu" /> </LinearLayout>
内容的提问来源于stack exchange,提问作者user27347117
相关产品推荐
相关产品推荐

