Преглед изворни кода

Apex Mobile
优化detail 标签页显示。

Ray Zhang пре 8 година
родитељ
комит
ef7d1500ee

+ 30 - 2
Apex Mobile/app/src/main/java/com/usai/apex/mainframe/BottomNavigationViewHelper.java

@@ -1,12 +1,15 @@
 package com.usai.apex.mainframe;
 
+import android.support.design.internal.BaselineLayout;
 import android.support.design.internal.BottomNavigationItemView;
 import android.support.design.internal.BottomNavigationMenuView;
 import android.support.design.widget.BottomNavigationView;
 import android.util.DisplayMetrics;
 import android.util.TypedValue;
+import android.view.Gravity;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.FrameLayout;
 
 import com.usai.apex.ApexTrackingApplication;
 
@@ -15,7 +18,7 @@ import java.lang.reflect.Field;
 // 利用反射,改变 item 中 mShiftingMode 的值
 public class BottomNavigationViewHelper {
 
-    public static void disableShiftMode(BottomNavigationView navigationView) {
+    public static void disableShiftMode(BottomNavigationView navigationView, boolean showIcon) {
 
 
         BottomNavigationMenuView menuView = (BottomNavigationMenuView) navigationView.getChildAt(0);
@@ -42,7 +45,11 @@ public class BottomNavigationViewHelper {
 
 
 
-                final View iconView = itemView.findViewById(android.support.design.R.id.icon);
+
+
+
+                 View iconView = itemView.findViewById(android.support.design.R.id.icon);
+
                 final ViewGroup.LayoutParams layoutParams = iconView.getLayoutParams();
                 final DisplayMetrics displayMetrics = ApexTrackingApplication.get_instance().getResources().getDisplayMetrics();
                 layoutParams.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 26, displayMetrics);
@@ -50,6 +57,27 @@ public class BottomNavigationViewHelper {
                 iconView.setLayoutParams(layoutParams);
 
 
+//                itemView.removeView(iconView);
+//                iconView.remove
+
+                if(!showIcon)
+                {
+                    for(int k=0;k<itemView.getChildCount();k++)
+                    {
+                        View v = itemView.getChildAt(k);
+                        if(v instanceof BaselineLayout)
+                        {
+//                        BaselineLayout bl = (BaselineLayout)v;
+                            FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) v.getLayoutParams();
+                            params.gravity = Gravity.CENTER;
+                            v.setLayoutParams(params);
+
+                        }
+                    }
+
+                    iconView.setVisibility(View.GONE);
+                }
+
                 itemView.setShiftingMode(false);
                 itemView.setChecked(itemView.getItemData().isChecked());
 

+ 2 - 2
Apex Mobile/app/src/main/java/com/usai/apex/mainframe/NewDetailActivity.java

@@ -233,7 +233,7 @@ public class NewDetailActivity extends AppCompatActivity {
 //        bottomNavigationView.setlistener
 
         //默认 >3 的选中效果会影响ViewPager的滑动切换时的效果,故利用反射去掉
-        BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
+        BottomNavigationViewHelper.disableShiftMode(bottomNavigationView, false);
         bottomNavigationView.setOnNavigationItemSelectedListener(
                 new BottomNavigationView.OnNavigationItemSelectedListener() {
                     @Override
@@ -644,7 +644,7 @@ public class NewDetailActivity extends AppCompatActivity {
 //
 //            tabmap.put(getIntent().getStringExtra("action" + i), vid);
             }
-            BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
+            BottomNavigationViewHelper.disableShiftMode(bottomNavigationView, false);
 
 
 //		Log.e("findFragmentByTag", "tag=" + tag + ", isnull= "

+ 3 - 3
Apex Mobile/app/src/main/java/com/usai/apex/mainframe/RootActivity.java

@@ -167,7 +167,7 @@ public class RootActivity extends AppCompatActivity {
 //        bottomNavigationView.setlistener
 
         //默认 >3 的选中效果会影响ViewPager的滑动切换时的效果,故利用反射去掉
-        BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
+        BottomNavigationViewHelper.disableShiftMode(bottomNavigationView,true);
         bottomNavigationView.setOnNavigationItemSelectedListener(
                 new BottomNavigationView.OnNavigationItemSelectedListener() {
                     @Override
@@ -522,7 +522,7 @@ public class RootActivity extends AppCompatActivity {
             bottomNavigationView.getMenu().clear();
 //                bottomNavigationView.getMenu().
             bottomNavigationView.inflateMenu(R.menu.navi_login);
-            BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
+            BottomNavigationViewHelper.disableShiftMode(bottomNavigationView ,true);
 
 
             HomeFragment homeFragment = new HomeFragment();
@@ -580,7 +580,7 @@ public class RootActivity extends AppCompatActivity {
             bottomNavigationView.getChildAt(0).setSelected(true);
             bottomNavigationView.getMenu().clear();
             bottomNavigationView.inflateMenu(R.menu.navi_logout);
-            BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
+            BottomNavigationViewHelper.disableShiftMode(bottomNavigationView,true);
 
 
             LoginFragment loginFragment = new LoginFragment();

+ 1 - 1
Apex Mobile/app/src/main/res/layout/activity_new_detail.xml

@@ -29,7 +29,7 @@
     <android.support.design.widget.BottomNavigationView
         android:id="@+id/bottom_navigation"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
+        android:layout_height="40dp"
 
 
         android:background="@color/tab_bg"