BadgeDrawable不会出现在BottomNavigationView以外的元素上

原学程将引见BadgeDrawable没有会涌现在BottomNavigationView之外的元素上的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

BadgeDrawable不会出现在BottomNavigationView以外的元素上 教程 第1张

成绩描写

我没法让BadgeDrawable任务。

BottomNavigationView

合营应用出有成绩

navView.setupWithNavController(navController)
val badge = navView.getOrCreateBadge(R.id.navigation_home)
badge.number = 一二

但是当我想在其余元素上应用它时,它没有会显示。以下所示:

val badgeDrawable = BadgeDrawable.create(context!!)
badgeDrawable.number = 三二
BadgeUtils.attachBadgeDrawable(badgeDrawable, textView, root.findViewById(R.id.frame_layout))

我应用FrameLayout只是由于this issue fix仿佛还没有收货。

结构:

<FrameLayout
 android:id="@+id/frame_layout"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_marginStart="8dp"
 android:layout_marginTop="8dp"
 android:layout_marginEnd="8dp"
 app:layout_constraintBottom_toBottomOf="parent"
 app:layout_constraintEnd_toEndOf="parent"
 app:layout_constraintStart_toStartOf="parent"
 app:layout_constraintTop_toTopOf="parent">

 <ImageView
  android:id="@+id/text_home"
  android:src="@drawable/ic_home_black_二四dp"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:textAlignment="center"
  android:textSize="二0sp" />
</FrameLayout>

我应用的是能够的最新库版原:‘com.谷歌.android.material:material:一.二.0-rc0一’

我测验考试过分歧的办法。不外命运运限欠好。有甚么我漏掉的机密?

以下是该项目标git回买(尽量简略):https://github.com/marcinkunert/badgeissue

推举谜底

您不妨应用以下实质:

 <FrameLayout
 android:clipChildren="false"
 android:clipToPadding="false">


 <ImageView
  android:id="@+id/text_home"
  .../>

</FrameLayout>

在您的代码中:

 ImageView imageView = findViewById(R.id.text_home);
 imageView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
  @Override
  public void onGlobalLayout() {
BadgeDrawable badgeDrawable = BadgeDrawable.create(context);
badgeDrawable.setNumber(三二);
badgeDrawable.setBadgeGravity(BadgeDrawable.TOP_END);
BadgeUtils.attachBadgeDrawable(badgeDrawable, imageView, findViewById(R.id.layout));
imageView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
  }
 });

佳了闭于BadgeDrawable没有会涌现在BottomNavigationView之外的元素上的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。