добавление динамически кнопок в горизонтальном порядке - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь добавить несколько кнопок динамически в горизонтальном порядке. Я пробовал несколько вариантов, и ни один из них не работал. Что я делаю неправильно?

RelativeLayout layout = (RelativeLayout) findViewById(R.id.pickItem);
RelativeLayout.LayoutParams buttonParams =
        new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
buttonParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
buttonParams.addRule(RelativeLayout.CENTER_VERTICAL);

String userName;
List<CheckBox> usersButtonList=new ArrayList<CheckBox>();
int i=0;
for(User user : users){
    userName=user.getName();
    CheckBox Userbutton = new CheckBox(this);
    usersButtonList.add(Userbutton);
    Userbutton.setText(userName);
    Userbutton.setId(i);
    Userbutton .setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            boolean isChecked=((CheckBox)v).isChecked();
            String s= (String)((CheckBox)v).getText();
            updateActiveUsers(isChecked,s);
        }
    });
    if(i!=0)
    {
        buttonParams.addRule(RelativeLayout.ALIGN_RIGHT,(i-1));
    }
    layout.addView(Userbutton,buttonParams);
    i++;
}

1 Ответ

0 голосов
/ 27 апреля 2018

Есть несколько вещей не так с этим. Во-первых, как сказал @EasyJoin Dev, замените RelativeLayout на LinearLayout в вашем XML-макете и установите горизонтальную ориентацию. Это должно выглядеть примерно так

<LinearLayout
    android:id="@+id/pickItem"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
</LinearLayout>

Затем измените две верхние строки в вашем коде на

LinearLayout layout = (LinearLayout) findViewById(R.id.pickItem);
LinearLayout.LayoutParams buttonParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

Так как у вас есть ViewGroup.LayoutParams.FILL_PARENT, он займет все доступное пространство. Дайте мне знать, если вам нужна дополнительная помощь или это не сработает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...