|
27 | 27 | import android.view.MenuItem;
|
28 | 28 | import android.view.View;
|
29 | 29 | import android.view.ViewGroup;
|
| 30 | +import android.view.accessibility.AccessibilityEvent; |
30 | 31 | import androidx.annotation.LayoutRes;
|
31 | 32 | import androidx.annotation.NonNull;
|
32 | 33 | import androidx.annotation.Nullable;
|
33 | 34 | import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
34 | 35 | import com.google.android.material.bottomappbar.BottomAppBar;
|
35 | 36 | import com.google.android.material.bottomappbar.BottomAppBarTopEdgeTreatment;
|
36 | 37 | import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
| 38 | +import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback; |
37 | 39 | import com.google.android.material.button.MaterialButton;
|
38 | 40 | import com.google.android.material.button.MaterialButtonToggleGroup;
|
39 | 41 | import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
|
53 | 55 | public class BottomAppBarMainDemoFragment extends DemoFragment implements OnBackPressedHandler {
|
54 | 56 |
|
55 | 57 | protected BottomAppBar bar;
|
| 58 | + protected View barNavView; |
56 | 59 | protected CoordinatorLayout coordinatorLayout;
|
57 | 60 | protected FloatingActionButton fab;
|
58 | 61 |
|
@@ -100,6 +103,7 @@ public View onCreateDemoView(
|
100 | 103 | coordinatorLayout = view.findViewById(R.id.coordinator_layout);
|
101 | 104 | bar = view.findViewById(R.id.bar);
|
102 | 105 | ((AppCompatActivity) getActivity()).setSupportActionBar(bar);
|
| 106 | + barNavView = bar.getChildAt(0); |
103 | 107 |
|
104 | 108 | setUpBottomDrawer(view);
|
105 | 109 |
|
@@ -151,6 +155,18 @@ private void setUpDemoControls(@NonNull View view) {
|
151 | 155 | @Override
|
152 | 156 | public boolean onBackPressed() {
|
153 | 157 | if (bottomDrawerBehavior.getState() != BottomSheetBehavior.STATE_HIDDEN) {
|
| 158 | + bottomDrawerBehavior.addBottomSheetCallback( |
| 159 | + new BottomSheetCallback() { |
| 160 | + @Override |
| 161 | + public void onStateChanged(@NonNull View bottomSheet, int newState) { |
| 162 | + if (newState == BottomSheetBehavior.STATE_HIDDEN) { |
| 163 | + barNavView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); |
| 164 | + } |
| 165 | + } |
| 166 | + |
| 167 | + @Override |
| 168 | + public void onSlide(@NonNull View bottomSheet, float slideOffset) {} |
| 169 | + }); |
154 | 170 | bottomDrawerBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
|
155 | 171 | return true;
|
156 | 172 | }
|
@@ -187,12 +203,11 @@ private void setUpBottomAppBarShapeAppearance() {
|
187 | 203 | protected void setUpBottomDrawer(View view) {
|
188 | 204 | View bottomDrawer = coordinatorLayout.findViewById(R.id.bottom_drawer);
|
189 | 205 | bottomDrawerBehavior = BottomSheetBehavior.from(bottomDrawer);
|
| 206 | + bottomDrawerBehavior.setUpdateImportantForAccessibilityOnSiblings(true); |
190 | 207 | bottomDrawerBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
|
191 | 208 |
|
192 | 209 | bar.setNavigationOnClickListener(
|
193 | 210 | v -> bottomDrawerBehavior.setState(BottomSheetBehavior.STATE_HALF_EXPANDED));
|
194 |
| - bar.setNavigationIcon(R.drawable.ic_drawer_menu_24px); |
195 |
| - bar.replaceMenu(R.menu.demo_primary); |
196 | 211 | }
|
197 | 212 |
|
198 | 213 | private void showSnackbar(CharSequence text) {
|
|
0 commit comments