Динамическая динамическая прокрутка между Relative layouts в scrollView

У меня есть вид прокрутки, в котором у меня есть несколько относительных макетов. А относительная компоновка имеет две кнопки, добавляемые к ней динамически. Как ниже

Просмотр прокрутки

_____________________ | ________________ | | |Relative Layout| | | | |Buttons| | | | |_______________| | | | ________________ | | |Relative Layout| | | | |Buttons| | | | |_______________| | | | |Relative Layout| | | | |Buttons| | | | |_______________| | | | ________________ | | |Relative Layout| | | | |Buttons| | | | |_______________| | | | |Relative Layout| | | | |Buttons| | | | | |_____________________| 

Можно ли динамически прокручивать до определенной относительной компоновки при нажатии кнопки. Я уже пробовал внизу и не работал

 if (count == 1) { final int k = id; mScrollView.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // TODO Auto-generated // method stub mScrollView.post(new Runnable() { @Override public void run() { Button btn = (Button) findViewById(k); mScrollView.smoothScrollTo(0,btn.getTop()); } }); 

Выполнить также не работать

Edit: Первоначально у меня был только набор кнопок в относительной компоновке. Затем smoothScrollTo работал так, как ожидалось. Позже я изменил структуру на вышеупомянутый стиль.

Подсказка Даниэля Бо была правильной.

view.getTop() будет давать позицию относительно своего непосредственного родителя.

Ниже приведена реализация.

 ScrollView mScrollView = (ScrollView) findViewById(R.id.scroll_view); mScrollView.post(new Runnable() { public void run() { Button btn = (Button) findViewById(k); ViewGroup vg =(ViewGroup)btn.getParent(); mScrollView.smoothScrollTo(0,vg.getTop()); }}); } 
Intereting Posts
Фоновый эффект пульсации на элементах панели инструментов StandAlone отсутствует Получите активность в поле `ViewDataBinding` внутри модуля« Robolectric »после его назначения Как выбрать различные файлы активов в качестве моего языка с помощью Locale и Configuration? Установка библиотеки Android SlidingMenu GetMeasuredWidth возвращает абсолютно неправильное значение Bluetooth Low Energy startScan на Android 6.0 не находит устройства Пользовательский вид с макетом Filetransfer в android через xmpp? Ошибка выполнения Proguard с внешней банкой Admob Получите правильную ширину окна после изменения размера или события changechange для Android Титан: методы шифрования и дешифрования данных на устройствах Android Как создать собственный приватный плагин в телефонной запинке Raw не может быть разрешен или не является полем Zbar с Android: окно просмотра камеры сканера остается неактивным и черным после показа URL-адреса в браузере XML или Java-ключевые слова в Android для Admob