Android: как отобразить все элементы в списке без функции прокрутки - PullRequest
0 голосов
/ 04 февраля 2019

Я хочу отобразить что-то вроде RecyclerView, но размер динамически меняется в зависимости от количества элементов в списке.Каждый элемент отображается в пределах элемента View.Не должно быть никакой прокрутки в представлении, поскольку высота представления списка установлена ​​на общую высоту количества представлений элементов.

В настоящее время я использую RecyclerView с * 1006.* как вы можете видеть в этом фрагменте:

recyclerview.apply {
            layoutManager = LinearLayoutManager(rootView.context)
            adapter = PlanAdapter(dateItem.planItems)
            setHasFixedSize(false)
}

, который не показывает ни одного элемента после первого.Вот пример экрана, где я его реализовал:

enter image description here

синие блики показывают, что эти элементы там в местномхранилище, но не отображается динамическим RecyclerView, который я сделал.Однако для этого есть лучший вариант, чем создать целый RecyclerView, верно?

1 Ответ

0 голосов
/ 04 февраля 2019

Если вы просто хотите отключить прокрутку утилизатора, вы можете сделать это, вызвав android:nestedScrollingEnabled="false" программно или через XML для recyclerView.

Теперь, если вы этого не сделаетеесли вы хотите использовать в этом отношении recyclerview, вы можете использовать пользовательское представление, расширяющее ваш макет, например:

public class AllergenView extends LinearLayout {

    private View rootView;
    private ImageView icon;
    private String allergenTag;
    Activity mActivity;

    public AllergenView(Activity activity, String allergenTag) {
        super(activity);
        this.mActivity = activity;
        this.allergenTag = allergenTag;

        init(activity);
    }

    public AllergenView(Context context, AttributeSet attrs) 
    {
        super(context, attrs);
    }

    private void init(Context context) {

        rootView = inflate(context, R.layout.view_allergen_icon, this);

        // Bind views
        icon = (ImageView) findViewById(R.id.img_icon);
    }

Вызывается таким образом

for (Allergen a : recipe.getAllergen()) {

                View v1 = new AllergenView(mActivity, Utils.toString(a.getAllergen()));
            holder.linearLayoutHorizontal.addView(v1);

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