Skip to content
This repository was archived by the owner on Sep 3, 2024. It is now read-only.

Commit 183c2ac

Browse files
committed
BottomNavigationView scroll, PopupMenu height, NestedScrollView crash fix
1 parent beab570 commit 183c2ac

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

app/src/main/java/de/dlyt/yanndroid/oneuiexample/MainActivity.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ public void onClick(View view) {
156156
});
157157

158158
//BottomNavigationLayout
159-
Drawable icon = getDrawable(R.drawable.ic_samsung_more);
159+
Drawable icon = getDrawable(R.drawable.ic_samsung_drawer);
160160
icon.setColorFilter(getResources().getColor(R.color.sesl_tablayout_text_color), PorterDuff.Mode.SRC_IN);
161161
for (String s : mTabsTitleName) {
162162
bnvLayout.addTab(bnvLayout.newTab().setText(s));
@@ -342,13 +342,12 @@ public void onClick(View v) {
342342
private void popupView(View view) {
343343
PopupMenu popupMenu = new PopupMenu(view);
344344
ArrayList<String> list = new ArrayList<>();
345-
for (int i = 0; i < 4; i++) list.add("Menu Item " + i);
345+
for (int i = 0; i < 24; i++) list.add("Menu Item " + i);
346346
popupMenu.inflate(list);
347347
popupMenu.setOnMenuItemClickListener((parent, view1, position, id) -> {
348348
popupMenu.dismiss();
349349
});
350-
// temp
351-
popupMenu.show(-120, (int) ((-bnvLayout.getHeight() * 5) * 0.88f));
350+
popupMenu.show();
352351
}
353352

354353

yanndroid/oneui/src/main/java/de/dlyt/yanndroid/oneui/view/BottomNavigationView.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,9 @@ private void invalidateTabLayout() {
102102
tabTextWidthSum += width;
103103
ViewSupport.setPointerIcon(tabView, 1000 /* PointerIcon.TYPE_ARROW */);
104104
}
105+
if (tabTextWidthSum >= getContext().getResources().getDisplayMetrics().widthPixels) {
106+
setTabMode(0);
107+
}
105108
addTabPaddingValue(tabTextWidthList, tabTextWidthSum);
106109
}
107110

yanndroid/oneui/src/main/java/de/dlyt/yanndroid/oneui/view/NestedScrollView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1150,7 +1150,7 @@ public boolean onTouchEvent(MotionEvent ev) {
11501150
if (canOverscroll) {
11511151
deltaY -= mScrollConsumed[1];
11521152
final int pulledToY = oldY + deltaY;
1153-
if (pulledToY < 0) {
1153+
if (mEdgeGlowTop != null && pulledToY < 0) {
11541154
EdgeEffectCompat.onPull(mEdgeGlowTop, (float) -deltaY / getHeight(), ev.getX(activePointerIndex) / getWidth());
11551155
if (!mEdgeGlowBottom.isFinished()) {
11561156
mEdgeGlowBottom.onRelease();

yanndroid/oneui/src/main/java/de/dlyt/yanndroid/oneui/view/PopupMenu.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import android.widget.AdapterView;
88
import android.widget.ArrayAdapter;
99
import android.widget.LinearLayout;
10+
import android.widget.ListAdapter;
1011
import android.widget.PopupWindow;
1112
import android.widget.TextView;
1213

@@ -45,9 +46,13 @@ public void inflate(ArrayList<String> menu) {
4546
listView.setDivider(null);
4647
listView.setSelector(R.drawable.sesl_list_selector);
4748

49+
listView.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
50+
int height = listView.getMeasuredHeight() + context.getResources().getDimensionPixelSize(R.dimen.sesl_popup_menu_item_bottom_padding) -5;
51+
4852
popupWindow = new PopupWindow(listView);
4953
popupWindow.setWidth(getPopupMenuWidth());
50-
popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
54+
popupWindow.setHeight(height);
55+
//popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
5156
popupWindow.setAnimationStyle(R.style.MenuPopupAnimStyle);
5257
popupWindow.setBackgroundDrawable(context.getDrawable(R.drawable.sesl_menu_popup_background));
5358
popupWindow.setOutsideTouchable(true);

0 commit comments

Comments
 (0)