Android – отключить прокрутку по горизонталиScrollView

Как я могу отключить overcroll на HorizontalScrollView под Android 2.2?

редактировать

Я использую для этого размышление:

HorizontalScrollView hh = (HorizontalScrollView) findViewById(R.id.chartHorizontalView); viewCls = hh.getClass(); try { Method m = viewCls.getMethod("setOverScrollMode", new Class[] { int.class }); int OVER_SCROLL_NEVER = (Integer) viewCls.getField( "OVER_SCROLL_NEVER").get(hh); m.invoke(hh, OVER_SCROLL_NEVER); } catch (Exception e) { e.printStackTrace(); } 

Это правильно в документах, вызовите setOverScrollMode

На складе AOSP не было эффекта сбрасывания до Gingerbread , поэтому вопрос о том, как отключить их, не имеет смысла. Некоторые производители добавили свои собственные эффекты сверхсброса, такие как эффект отскока TouchWiz. Очевидно, что поскольку эффекты не являются частью SDK, в SDK нет способа отключить их!

На момент написания этой статьи, Froyo и ниже заняли около 2%. На мой взгляд, разумная вещь – нацелить версию sdk> = 9 и использовать что-то вроде

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { horizontalScrollView.setOverScrollMode(View.OVER_SCROLL_NEVER); } 

Таким образом, большинство пользователей не будут видеть эффект прокрутки свечения, но те 2% или менее пользователи, которые запускают Froyo с TouchWiz, по-прежнему будут видеть эффект отскока. Если вы действительно, абсолютно необходимо отключить все эффекты overscroll, которые вы могли бы использовать onScrollListener, чтобы предотвратить прокрутку в начале или конце или использовать отражение, чтобы иметь дело с TouchWiz, точно подобным этому примеру, или этот