如何解决Android BottomView 自定义
[![我想要这样的底栏][1]][1]
在android中使用下面的库来自定义底部标签栏: https://github.com/Droppers/AnimatedBottomBar
它非常易于使用并提供许多动画。 但是,我不希望菜单文本内容显示在底部栏中。
我只想在选择或未选择时显示图标。
我怎样才能用这个库来实现? 或者有什么办法可以达到这样的效果?
解决方法
我浏览了提到的库,它目前不支持此功能,但我们可以调整代码以使其适用于您的用例,但要做到这一点,您需要将代码作为模块/文件夹而不是依赖。
要做到这一点,您需要按照以下步骤操作
- 你需要摆脱对
implementation 'nl.joery.animatedbottombar:library:1.0.9'
的依赖 - 清理项目以将其从缓存中删除
- 您可以克隆代码,将代码中的
'library'
文件夹添加为 Android 模块,然后使用implementation project(path: ':library')
将其包含在您的 gradle 中
完成上述步骤后,您可以根据需要修改代码。现在,对于您的用例,请将 updateTabType
文件中的 line#99
中的 library/src/main/java/nl/joery/animatedbottombar/TabView.kt
方法替换为以下
private fun updateTabType() {
animatedView = icon_layout
selectedAnimatedView = icon_layout //here we are forcing it use icon_layout for both views all the time
if (selectedAnimatedView.visibility == View.VISIBLE) {
animatedView.visibility = View.VISIBLE
selectedAnimatedView.visibility = View.INVISIBLE
} else {
animatedView.visibility = View.INVISIBLE
selectedAnimatedView.visibility = View.VISIBLE
}
bringViewsToFront()
}
此外,该库是在 MIT 开源许可下获得许可的,因此您可以 愉快地免费更改您自己的代码版本。
更新
另外,在library
模块gradle中,请删除对bintray的引用,这不是必需的
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 29
defaultConfig {
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0.9"
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
consumerProguardFiles 'consumer-rules.pro'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(dir: 'libs',include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.61"
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.viewpager2:viewpager2:1.0.0'
implementation 'com.google.android:flexbox:2.0.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation "androidx.navigation:navigation-ui-ktx:2.3.1"
}
,
如果你在 repo 的描述中看到,你会看到有一些关于标签外观的属性
将此 app:abb_selectedTabType = "icon"
添加到您可能已经添加到 xml 中的代码中,如下所示
<nl.joery.animatedbottombar.AnimatedBottomBar
android:id="@+id/bottom_bar"
android:background="#FFF"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:abb_selectedTabType="text"
app:abb_indicatorAppearance="round"
app:abb_indicatorMargin="16dp"
app:abb_indicatorHeight="4dp"
app:abb_tabs="@menu/tabs"
app:abb_selectedTabType = "icon"
app:abb_selectedIndex="1" />
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。