From 2037ca27e8c54c644bde12cb03242dbf9d7aa58c Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Sun, 4 Oct 2020 10:18:40 +0700 Subject: [PATCH] Custom tab fix? --- .../design/widget/VerticalTabLayout.java | 19 ++++-- .../pojavlaunch/PojavLauncherActivity.java | 3 +- .../launcheruiv3/PojavLauncherViewPager.java | 59 ------------------- app/src/main/res/layout/launcher_main_v3.xml | 2 +- 4 files changed, 17 insertions(+), 66 deletions(-) delete mode 100644 app/src/main/java/net/kdt/pojavlaunch/launcheruiv3/PojavLauncherViewPager.java diff --git a/app/src/main/java/android/support/design/widget/VerticalTabLayout.java b/app/src/main/java/android/support/design/widget/VerticalTabLayout.java index 94f3c8b67..083354541 100644 --- a/app/src/main/java/android/support/design/widget/VerticalTabLayout.java +++ b/app/src/main/java/android/support/design/widget/VerticalTabLayout.java @@ -982,18 +982,21 @@ public class VerticalTabLayout extends ScrollView { } private LinearLayout.LayoutParams createLayoutParamsForTabs() { + // Horizontal: WRAP_CONTENT, MATCH_PARENT final LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( - LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT); + LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); updateTabViewLayoutParams(lp); return lp; } private void updateTabViewLayoutParams(LinearLayout.LayoutParams lp) { if (mMode == MODE_FIXED && mTabGravity == GRAVITY_FILL) { - lp.width = 0; + // Horizontal: width 0 + lp.height = 0; lp.weight = 1; } else { - lp.width = LinearLayout.LayoutParams.WRAP_CONTENT; + // Horizontal: width WRAP_CONTENT + lp.height = LinearLayout.LayoutParams.WRAP_CONTENT; lp.weight = 0; } } @@ -1006,7 +1009,10 @@ public class VerticalTabLayout extends ScrollView { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // If we have a MeasureSpec which allows us to decide our height, try and use the default // height + + // Horizintal: idealHeight final int idealHeight = dpToPx(getDefaultHeight()) + getPaddingTop() + getPaddingBottom(); + // final int idealWidth = dpToPx(getDefaultHeight()) + getPaddingLeft() + getPaddingRight(); switch (MeasureSpec.getMode(heightMeasureSpec)) { case MeasureSpec.AT_MOST: heightMeasureSpec = MeasureSpec.makeMeasureSpec( @@ -1210,7 +1216,8 @@ public class VerticalTabLayout extends ScrollView { switch (mMode) { case MODE_FIXED: - mTabStrip.setGravity(Gravity.CENTER_HORIZONTAL); + // Horizontal: CENTER_HORIZONTAL + mTabStrip.setGravity(Gravity.CENTER_VERTICAL); break; case MODE_SCROLLABLE: mTabStrip.setGravity(GravityCompat.START); @@ -2038,6 +2045,10 @@ public class VerticalTabLayout extends ScrollView { if (mIndicatorLeft >= 0 && mIndicatorRight > mIndicatorLeft) { canvas.drawRect(mIndicatorLeft, getHeight() - mSelectedIndicatorHeight, mIndicatorRight, getHeight(), mSelectedIndicatorPaint); + + // ADD: Try the VERTICAL + canvas.drawRect(mIndicatorLeft, getWidth() - mSelectedIndicatorHeight, + mIndicatorRight, getWidth(), mSelectedIndicatorPaint); } } } diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java b/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java index d54fc09f4..cbe5fa8a8 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/PojavLauncherActivity.java @@ -17,7 +17,6 @@ import com.kdt.filerapi.*; import java.io.*; import java.nio.charset.*; import java.util.*; -import net.kdt.pojavlaunch.launcheruiv3.*; import net.kdt.pojavlaunch.mcfragments.*; import net.kdt.pojavlaunch.prefs.*; import net.kdt.pojavlaunch.util.*; @@ -40,7 +39,7 @@ public class PojavLauncherActivity extends AppCompatActivity private VerticalTabLayout tabLayout; */ - private PojavLauncherViewPager viewPager; + private ViewPager viewPager; private VerticalTabLayout tabLayout; private TextView tvVersion, tvUsernameView; diff --git a/app/src/main/java/net/kdt/pojavlaunch/launcheruiv3/PojavLauncherViewPager.java b/app/src/main/java/net/kdt/pojavlaunch/launcheruiv3/PojavLauncherViewPager.java deleted file mode 100644 index d07d381cd..000000000 --- a/app/src/main/java/net/kdt/pojavlaunch/launcheruiv3/PojavLauncherViewPager.java +++ /dev/null @@ -1,59 +0,0 @@ -// Source: https://github.com/TomazWang/TIL-today-i-learned/blob/master/Android/VerticalViewPager.md -package net.kdt.pojavlaunch.launcheruiv3; - -import android.content.*; -import android.support.v4.view.*; -import android.util.*; -import android.view.*; - -public class PojavLauncherViewPager extends ViewPager -{ - public PojavLauncherViewPager(Context ctx) { - this(ctx, null); - } - - public PojavLauncherViewPager(Context ctx, AttributeSet attrs) { - super(ctx, attrs); - setPageTransformer(true, new VerticalPageTransformer()); - } - @Override - public boolean onInterceptTouchEvent(MotionEvent ev) { - - boolean interceped = super.onInterceptTouchEvent(swapXY(ev)); - swapXY(ev); // swap x,y back for other touch events. - return interceped; - } - - @Override - public boolean onTouchEvent(MotionEvent ev) { - return super.onTouchEvent(swapXY(ev)); - } - - private MotionEvent swapXY(MotionEvent ev) { - float width = getWidth(); - float height = getHeight(); - - float newX = (ev.getY() / height) * width; - float newY = (ev.getX() / width) * height; - - ev.setLocation(newX, newY); - - return ev; - } - - private class VerticalPageTransformer implements PageTransformer { - @Override - public void transformPage(View page, float position) { - if (position < -1) { - page.setVisibility(View.INVISIBLE); - } else if (position <= 1) { - page.setVisibility(View.VISIBLE); - - page.setTranslationX(page.getWidth() * -position); - page.setTranslationY(position * page.getHeight()); - } else { - page.setVisibility(View.INVISIBLE); - } - } - } -} diff --git a/app/src/main/res/layout/launcher_main_v3.xml b/app/src/main/res/layout/launcher_main_v3.xml index b3bc16ad2..8bb613269 100644 --- a/app/src/main/res/layout/launcher_main_v3.xml +++ b/app/src/main/res/layout/launcher_main_v3.xml @@ -23,7 +23,7 @@ android:layout_height="match_parent" android:id="@+id/launchermainTabLayout"/> -