如何禁用单击/按住底部导航菜单项时出现的灰框?
<android.support.design.widget.BottomNavigationView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:menu="@menu/bottom_navigation_menu"
android:id="@+id/bottom_navigation"
android:background="@color/colorWhite"
app:labelVisibilityMode="unlabeled"
app:itemIconSize="26dp"/>
Run Code Online (Sandbox Code Playgroud) 我在屏幕底部有 4 个选项卡,对于最后一个选项卡,我想设置用户个人资料图像(如果他有的话)。我尝试了一切。只有从可绘制对象中设置的图标才能正常工作。其他所有案例都是一场灾难。
我发现如果我在 26 以上的 Android 版本上删除图标色调和图标模式,它就可以正常工作。对于其下的版本,它不起作用。
这是代码。也许有人会对如何提供帮助有一些想法。这就是我从可绘制对象中设置图标的方法。这个 imageView 只是一个测试,以确保图像是从服务器下载的。
@Override
public void loadUrlAsTabProfileImage(String url) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
navigationView.getMenu().getItem(presenter.getProfileTabPosition()).setIconTintList(null);
navigationView.getMenu().getItem(presenter.getProfileTabPosition()).setIconTintMode(null);
}
Glide.with(HomeActivity.this)
.asBitmap()
.load(url)
.apply(RequestOptions.circleCropTransform())
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
Drawable drawable = new BitmapDrawable(getResources(), resource);
imageView.setImageDrawable(drawable);
imageView.setVisibility(View.VISIBLE);
navigationView.getMenu().findItem(R.id.layout_profile).setIcon(drawable);
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是 xml 中菜单的样子
<item android:id="@+id/layout_feed"
android:title="@string/feed"
android:icon="@drawable/ic_feed_bottombar"
app:showAsAction="always"/>
<item android:id="@+id/layout_inbox"
android:title="@string/inbox"
android:icon="@drawable/ic_inbox_bottombar"
app:showAsAction="always"/>
<item android:id="@+id/layout_contacts"
android:title="@string/contacts"
android:icon="@drawable/ic_contacts_bottombar"
app:showAsAction="always"/>
<item android:id="@+id/layout_profile"
android:title="@string/profile"
android:icon="@drawable/ic_profile_bottombar"
app:showAsAction="always"/>
Run Code Online (Sandbox Code Playgroud)
我尝试使用标签 …
创建一个应用程序,并通过设置“导航时选择的侦听器”来实现底部导航,单击底部导航面板中的图标时,我尝试替换片段,片段确实会被替换,但双击时会被替换。单击菜单项不会执行任何操作。这是我的代码'''
类 MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// val toolbar=app_bar as androidx.appcompat.widget.Toolbar
//setSupportActionBar(toolbar)
val navigation = findViewById<View>(R.id.nav_view) as BottomNavigationView
navigation.setOnNavigationItemReselectedListener {
when (it.itemId) {
R.id.navigation_home -> {
var x = supportFragmentManager
var y = x.beginTransaction()
var fragment = HomeFragment()
y.replace(R.id.nav_host_fragment, fragment)
y.addToBackStack("123")
y.commit()
}
R.id.navigation_login -> {
var x = supportFragmentManager
var y = x.beginTransaction()
var fragment = LoginFragment()
y.replace(R.id.nav_host_fragment, fragment)
y.addToBackStack("456")
y.commit()
}
R.id.navigation_notifactory -> {
var x = supportFragmentManager
var y = …Run Code Online (Sandbox Code Playgroud) 我尝试下面的解决方案并发现它们的名词很有用:
这是我的 xml 文件:
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/main_navigation"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="#ffffff"
android:theme="@style/Widget.BottomNavigationView"
app:menu="@menu/botton_navigation_menu"
android:layout_above="@+id/phone_frame"
android:elevation="0dp"/>
Run Code Online (Sandbox Code Playgroud) 底部导航所选项目的颜色没有改变,尽管我提供了控制颜色变化的可绘制文件。我已经尝试了很多次,但我找不到代码中的错误。
请帮忙!
这是底部导航
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
android:background="@color/bottomBackground"
app:itemTextColor="@drawable/icon_color"
app:itemIconTint="@drawable/icon_color"
app:labelVisibilityMode="labeled"
app:menu="@menu/bottom_navigation_menu"/>
Run Code Online (Sandbox Code Playgroud)
这是 icon_color
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/colorAccent" android:state_checked="true"/>
<item android:color="@color/grey" android:state_checked="false"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
编辑 :
当我删除这段代码时它工作正常
BottomNavigationView navigation = findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
int id = menuItem.getItemId();
if(id == R.id.navigation_library) {
loadFragment(new LibraryFragment());
}
else if (id == R.id.navigation_for_you) {
loadFragment(new ForYouFragment());
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
为什么这段代码会干扰我的功能。
android android-layout android-xml bottomnavigationview material-components

我从 NavigationAdvancedSample 复制了 NavigationExtensions.kt 扩展文件,我得到了这个异常:
我是一名 android 新手,试图为我的新 android 应用程序创建一个底部导航栏,类似于 Instagram 中的导航栏。像这样
单击搜索图标会在操作栏中添加一个搜索栏。我正在构建一个应用程序,用于提醒用户他的医疗预约,底部有三个导航选项卡。我已经创造了这个
在这之后我被卡住了。我是否应该使用三个活动来显示相应选项卡或片段的内容,以及如何实现。
我需要一个recyclerview来显示约会。如何仅在单击底部的搜索图标时显示搜索栏。已经搜索了很多实现这一点,但找不到任何有用的东西。
任何对实现相同的代码或库的建议都会有很大帮助,谢谢。
android android-fragments instagram android-recyclerview bottomnavigationview
我有 2 个片段,我可以在它们之间使用底部导航栏导航。我还有一个溢出菜单,其中包含一个显示编辑文本对话框的项目。
我希望当我在对话框中编写和验证文本时,导航栏上当前显示的片段项会更改标题。我不知道如何更改特定项目的文本。
我希望我的问题是可以理解的。我一直在搜索 SO,但没有找到任何相应的答案。
我正在使用,BottomNavigationView并且已经设置了如下颜色:
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_navigation_height"
app:itemBackground="@color/white"
app:itemIconTint="@color/bottom_bar_item_selector"
app:itemTextColor="@color/bottom_bar_item_selector"
app:menu="@menu/bottom_navigation_main" />
Run Code Online (Sandbox Code Playgroud)
@ color / bottom_bar_item_selector:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/colorPrimary" />
<item android:color="@color/grey" />
</selector>
Run Code Online (Sandbox Code Playgroud)
问题是,我@color/colorPrimary是#C4071A,但最终选择的项目颜色更浅(#E65A6E)。区别在屏幕截图上可见-图标颜色比文本颜色浅。有没有办法使用完全相同的颜色?
@ menu / bottom_navigation_main:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/bottom_bar_item_one"
android:icon="@drawable/ic_1"
android:title="item1"
app:showAsAction="ifRoom"
android:enabled="true" />
<item
android:id="@+id/bottom_bar_item_two"
android:icon="@drawable/ic_2"
android:title="item2"
app:showAsAction="ifRoom"
android:enabled="true" />
<item
android:id="@+id/bottom_bar_item_three"
android:icon="@drawable/ic_3"
android:title="item3"
app:showAsAction="ifRoom"
android:enabled="true" />
<item
android:id="@+id/bottom_bar_item_four"
android:icon="@drawable/ic_4"
android:title="item4"
app:showAsAction="ifRoom"
android:enabled="true" />
<item
android:id="@+id/bottom_bar_item_five"
android:icon="@drawable/ic_5"
android:title="item5"
app:showAsAction="ifRoom"
android:enabled="true" …Run Code Online (Sandbox Code Playgroud) 如何在没有任何Helper或proGuard的情况下以Google材质依赖的简单方式删除BottomNavigationView的所有动画com.google.android.material:material:1.0.0?