Я добавляю динамический контент через Java в относительную схему, которая находится внутри ScrollView
:
<ScrollView
android:layout_below="@id/btn_draw_route"
android:id="@+id/layout_scroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:layout_alignParentBottom="true">
<RelativeLayout
android:id="@+id/layout_route"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</RelativeLayout>
</ScrollView>
По какой-то причине содержимое внутри прокрутки не прокручивается.
Iя добавляю содержимое следующим образом:
Button mButton = new Button(this);
mButton.setText(String.valueOf(singleStep.getId()));
mButton.setId(View.generateViewId());
mButton.setOnClickListener(new MyClickListener(singleStep.getId()));
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
lp.bottomMargin = 10;
lp.topMargin = 10;
lp.leftMargin = 10;
lp.rightMargin = 10;
lp.addRule(RelativeLayout.CENTER_HORIZONTAL);
// Add to relativeLayout
mRouteLayout.addView(mButton, lp);
Я уже пытался вызвать mScrollLayout.invalidate ();после добавления контента, но это не помогает.Что я заметил, так это то, что если я не установил android: fillViewport = "true" в просмотре прокрутки, его высота будет очень низкой и будет отображаться только часть относительного макета.
Если я установлю высоту относительной отметки, например, 2000dp, контейнер будет прокручиваться, но отображает только небольшую часть реального содержимого относительной отметки.
Редактировать: Может быть важно: содержимое добавляется снизу вверх, каждый с таким атрибутом, как
lp.addRule(RelativeLayout.ABOVE, button2.getId(););