Невозможно изменить размер линейного макета детей в Android реагировать на родной модуль

Полный код здесь

Видео о правильном поведении в Java и неправильном реагировании

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

    LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) leftView.getLayoutParams();
    //Log.d("ll","width " + newWidth);
    lp.width=newWidth;
    leftView.setLayoutParams(lp);

В реагировать нативно, touch по-прежнему вызывает этот метод и регистрирует ожидаемые значения, но размер дочерних элементов не обновляется. Единственный раз, когда он обновляется, это когда я переключаю видимость на пропавшую, а затем снова видимую. Вызов invalidate / requestLayout для представления из java или forceUpdate из js не имеет никакого эффекта.

Есть ли какой-то другой код, который мне нужно вызвать, чтобы сделать недействительным и перерисовать представление? Нужно ли дать подсказку, что этот компонент прокручивается или реагирует на прикосновения?

Ответы на вопрос(4)

Ваш ответ на вопрос