Я хочу установить кнопки один за другим по вертикали. Я пытался что-то вроде ниже, но это не работает. Нужна помощь, пожалуйста.Как добавить динамические кнопки вертикально один за другим в Android?
RelativeLayout body=(RelativeLayout) findViewById(R.id.body);
RelativeLayout.LayoutParams buttonParams =
new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
Button btn;
List<Button> allEds = new ArrayList<Button>();
for(int i=0;i<totalSID;i++){
btn = new Button(FaqList.this);
btn.setId(i);
allEds.add(btn);
if(i==0){}
else
buttonParams.addRule(RelativeLayout.BELOW,allEds.get(i-1).getId());
body.addView(btn,buttonParams);
}
Добавление файла xml. Для справки вы можете пройти через это.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:scrollbars="vertical"
>
<HorizontalScrollView
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:fillViewport="true"
>
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginBottom="20dp"
>
<LinearLayout
android:id="@+id/body"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:orientation="horizontal"
android:animateLayoutChanges="true">
</LinearLayout>
</LinearLayout>
</HorizontalScrollView>
</ScrollView>
</LinearLayout
Я не знаю, где проблема на самом деле
Вы использовали относительную компоновку. с этой крышкой покрывают друг друга. используйте linearlayout как родительский контейнер. но если вы хотите использовать относительный макет, вы должны сохранить предыдущие идентификаторы кнопок и установить новые кнопки ниже свойства следующим образом: RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams (LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); relativeParams.addRule (RelativeLayout.BELOW, idOfTheViewBelow); –
, если я использую linearlayout, я не могу добавить правила позже, а в линейке кнопки просто идут бок о бок горизонтально:/ – black