Intereting Posts
Неожиданная строка состояния: ICY 200 OK для метода URL openStream ()? Android 5.0 / Lollipop: принудительное повторное сканирование / system / priv-app Возможно ли запустить диалоговое окно «Диалог» из «Предпочтения» в «Предпочтение»? Как использовать проводник на корневом устройстве? Добавление пользовательских заголовков в запросы ресурсов WebView – андроид Android лучший и безопасный способ остановить поток Почему «Дата d = новая дата ();» возвращает ошибку? Почему в пользовательской учетной записи Android не отображается «Учетные записи и настройки»? Мое приложение не будет отображаться в диалоговом окне выбора для android.intent.action.VIEW с типом видео / * только на Marshmallow Можем ли мы добавить текст к чертежу? Ошибка java.lang.StackOverFlow. Подозревали слишком много просмотров? MediaController всегда отображается на Android Как исправить проблемы с поисковой панелью-большим пальцем Как удалить подчеркивание из поля EditText в Android? Как изменить системную тревогу

Скользящее меню блокирует событие касания в верхнем виде

Я пытаюсь использовать Sliding Menu в своем приложении. На моем Sony Xperia S он работает очень хорошо, но когда я пытаюсь запустить приложение на HTC Desire HD, меню открывается отлично по жесту, но другие события касания блокируются и вид сверху ( ViewPager , скользящее меню за ним) не прокручивается.

Кто-нибудь знает, как это исправить?

Может быть, будет полезно дать ответ (так я использую меню):

 private void initSlidingMenu() { mSlidingMenu = new SlidingMenu(getApplicationContext()); mSlidingMenu.setMode(SlidingMenu.LEFT); mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); mSlidingMenu.setShadowWidthRes(R.dimen.default_shadow_width); mSlidingMenu.setShadowDrawable(R.drawable.defaultshadow); mSlidingMenu.setBehindOffsetRes(R.dimen.default_behind_offset); mSlidingMenu.setFadeDegree(0.35f); mSlidingMenu.setMenu(firstPage); mSlidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT); } 

В onPageSelected() отключить меню или включить его, поэтому меню отображается только на левой странице:

 @Override public void onPageSelected(int arg0) { ActivityCompat.invalidateOptionsMenu(this); if (arg0 == Utils.DEFAULT_PAGE) mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); else mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); } 

Solutions Collecting From Web of "Скользящее меню блокирует событие касания в верхнем виде"

У меня просто была такая же проблема, когда меню Sliding прекрасно работало на моем Samsung Galaxy S2, работающем под управлением ICS, но не на моем HTC Desire, который работает Gingerbread.

Я использовал тот же метод, что и вы, чтобы реализовать скользящее меню, но я обнаружил, что другая реализация решила проблему.

Вместо того, чтобы вручную привязывать меню к вашей деятельности:

 mSlidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT); 

Я решил расширить свою деятельность одним из действий Sliding из библиотеки SlidingMenu. В моем случае моя активность сначала распространяла FragmentActivity но я заменил ее на SlidingFragmentActivity

Затем вы должны установить скрытое окно внутри метода onCreate или ваша активность будет сбой.

 setBehindContentView(R.layout.slidingmenu); //Replace with the layout of your menu 

Это должно решить проблему.

Вот пример кода моей деятельности:

 public class MainActivity extends SlidingFragmentActivity { SlidingMenu menu; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Main view layout for the activity setContentView(R.layout.activity_listing); // set the Behind View : REQUIRED (replace with your menu's layout) setBehindContentView(R.layout.slidingmenu); menu = getSlidingMenu(); //Now you can customize your sliding menu if you want menu.setMode(SlidingMenu.LEFT); menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); menu.setShadowWidthRes(R.dimen.shadow_width); menu.setShadowDrawable(R.drawable.slidingmenu_shadow); menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); menu.setFadeDegree(0.35f); 

Вы заметите, что при таком решении вам не нужно звонить

 mSlidingMenu.setMenu(firstPage); mSlidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT); 

Я не проанализировал весь исходный код библиотеки SlidingMenu, но, возможно, текущий метод attachToActivity в некоторых случаях attachToActivity и эти ошибки не появляются, если мы используем специальные действия, предоставляемые библиотекой.

EDIT: Хорошо для тех, кто работает с библиотекой SlidingMenu и ActionBarSherlock (ABS). Сначала вы должны убедиться, что ABS ссылается в SlidingMenu lib. Таким образом, вы сможете расширить классы занятий, предоставляемые SlidingMenu, с помощью ABS.

Пример, если я хочу использовать функцию FragmentActivity с помощью меню ABS и Sliding: вам нужно изменить в библиотеке скользящих меню

 class SlidingFragmentActivity extends FragmentActivity implements SlidingActivityBase 

от

 class SlidingFragmentActivity extends SherlockFragmentActivity implements SlidingActivityBase 

И затем в вашем приложении, обычно используйте SlidingFragmentActivity .

Вот код моего приложения, это похоже на тот, который я опубликовал, но с поддержкой ABS:

 public class MainActivity extends SlidingFragmentActivity { ActionBar mActionBar; SlidingMenu menu; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listing); //Layout of the above view /* * ABS initialization */ mActionBar = getSupportActionBar(); mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); mActionBar.setDisplayHomeAsUpEnabled(true); /* * Sliding menu initialization */ menu = getSlidingMenu(); menu.setMode(SlidingMenu.LEFT); menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); menu.setShadowWidthRes(R.dimen.shadow_width); menu.setShadowDrawable(R.drawable.slidingmenu_shadow); menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); menu.setFadeDegree(0.35f); /* This line initializes the way the sliding menu is working if you set the boolean to true, the ActionBar will slide along with the content. if you set to false, only the content will slide and the ActionBar will not move */ setSlidingActionBarEnabled(true); // set the Behind View setBehindContentView(R.layout.slidingmenu); //Menu view