From e2578b6a283a99ffab019cc2b29d3b959e129da5 Mon Sep 17 00:00:00 2001 From: HuanCheng65 <609486518@qq.com> Date: Sun, 10 Apr 2022 11:15:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=A6=96=E9=A1=B5=E4=BE=A7=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tieba/post/activities/MainActivity.kt | 7 +++--- .../widgets/theme/TintNavigationRailView.java | 17 +++++++++----- .../main/res/layout-sw600dp/activity_main.xml | 22 +++++++++++++------ .../main/res/layout/header_main_nav_rail.xml | 6 +++++ 4 files changed, 36 insertions(+), 16 deletions(-) create mode 100644 app/src/main/res/layout/header_main_nav_rail.xml diff --git a/app/src/main/java/com/huanchengfly/tieba/post/activities/MainActivity.kt b/app/src/main/java/com/huanchengfly/tieba/post/activities/MainActivity.kt index 67b27929..4762e77a 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/activities/MainActivity.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/activities/MainActivity.kt @@ -15,7 +15,7 @@ import android.widget.TextView import android.widget.Toast import androidx.viewpager.widget.ViewPager.OnPageChangeListener import butterknife.BindView -import com.google.android.material.bottomnavigation.BottomNavigationItemView +import com.google.android.material.navigation.NavigationBarItemView import com.google.android.material.navigation.NavigationBarMenuView import com.google.android.material.navigation.NavigationBarView import com.google.android.material.snackbar.Snackbar @@ -106,12 +106,13 @@ open class MainActivity : BaseActivity(), NavigationBarView.OnItemSelectedListen return false } + @SuppressLint("RestrictedApi") private fun findView() { - menuView = navigationView.getChildAt(0) as NavigationBarMenuView + menuView = navigationView.menuView as NavigationBarMenuView } protected fun initView() { - val hideExploreItemView = menuView!!.getChildAt(msgNavPosition) as BottomNavigationItemView + val hideExploreItemView = menuView!!.getChildAt(msgNavPosition) as NavigationBarItemView val badge = layoutInflater.inflate(R.layout.layout_badge, hideExploreItemView, true) badgeTextView = badge.findViewById(R.id.tv_msg_count) if (hideExplore) { diff --git a/app/src/main/java/com/huanchengfly/tieba/post/widgets/theme/TintNavigationRailView.java b/app/src/main/java/com/huanchengfly/tieba/post/widgets/theme/TintNavigationRailView.java index 6683ba69..6b37ab99 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/widgets/theme/TintNavigationRailView.java +++ b/app/src/main/java/com/huanchengfly/tieba/post/widgets/theme/TintNavigationRailView.java @@ -1,11 +1,13 @@ package com.huanchengfly.tieba.post.widgets.theme; -import android.annotation.SuppressLint; import android.content.Context; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.util.AttributeSet; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.google.android.material.navigationrail.NavigationRailView; import com.huanchengfly.tieba.post.R; import com.huanchengfly.tieba.post.ui.theme.interfaces.Tintable; @@ -22,24 +24,27 @@ public class TintNavigationRailView extends NavigationRailView implements Tintab } public TintNavigationRailView(Context context, AttributeSet attrs) { - this(context, attrs, 0); + this(context, attrs, R.attr.navigationRailStyle); } - @SuppressLint("CustomViewStyleable") public TintNavigationRailView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); + this(context, attrs, defStyleAttr, R.style.Widget_MaterialComponents_NavigationRailView); + } + + public TintNavigationRailView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); if (isInEditMode()) { return; } if (attrs == null) { - mBackgroundTintResId = R.color.transparent; + mBackgroundTintResId = 0; mItemIconTintResId = 0; mItemTextTintResId = 0; applyTintColor(); return; } TypedArray array = getContext().obtainStyledAttributes(attrs, R.styleable.TintNavigationRailView, defStyleAttr, 0); - mBackgroundTintResId = array.getResourceId(R.styleable.TintNavigationRailView_backgroundTint, R.color.transparent); + mBackgroundTintResId = array.getResourceId(R.styleable.TintNavigationRailView_backgroundTint, 0); mItemIconTintResId = array.getResourceId(R.styleable.TintNavigationRailView_itemIconTintList, 0); mItemTextTintResId = array.getResourceId(R.styleable.TintNavigationRailView_itemTextTintList, 0); array.recycle(); diff --git a/app/src/main/res/layout-sw600dp/activity_main.xml b/app/src/main/res/layout-sw600dp/activity_main.xml index 7a453ad8..7ee312de 100644 --- a/app/src/main/res/layout-sw600dp/activity_main.xml +++ b/app/src/main/res/layout-sw600dp/activity_main.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + android:layout_width="0dp" + android:layout_height="0dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/navbar" + app:layout_constraintTop_toTopOf="parent" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/header_main_nav_rail.xml b/app/src/main/res/layout/header_main_nav_rail.xml new file mode 100644 index 00000000..6806afbe --- /dev/null +++ b/app/src/main/res/layout/header_main_nav_rail.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file