Ответы пользователя по тегу Java
  • Как создать два ровных ряда в recycler-view?

    @Gnoemes
    Как вариант можешь установить ширину карточки "match_parent", а отступы указать через RecyclerView.ItemDecorator.
    Декоратор

    spacing - расстояние между элементами
    margin - отступ между крайними элементами и экраном, по умолчанию равно spacing

    import android.graphics.Rect
    import android.view.View
    import androidx.recyclerview.widget.GridLayoutManager
    import androidx.recyclerview.widget.RecyclerView
    
    class GridItemDecorator(
            private val spacing: Int,
            private val margin: Int = spacing
    ) : RecyclerView.ItemDecoration() {
    
        private val halfSpacing = spacing / 2
    
        override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) {
            val columns = (parent.layoutManager as? GridLayoutManager)?.spanCount ?: 1
            val rows = parent.adapter?.itemCount?.div(columns) ?: 1
    
            val pos = parent.getChildAdapterPosition(view)
    
            fun setTopSpacing() {
                if (pos / columns + 1 == 1) {
                    outRect.top = margin
                } else {
                    outRect.top = halfSpacing
                }
            }
    
            fun setBottomSpacing() {
                if (pos / columns + 1 == rows) {
                    outRect.bottom = margin
                } else {
                    outRect.bottom = halfSpacing
                }
            }
    
            fun setLeftSpacing() {
                if (pos % columns == 0) {
                    outRect.left = margin
                } else {
                    outRect.left = halfSpacing
                }
            }
    
            fun setRightSpacing() {
                if (pos % columns == columns - 1) {
                    outRect.right = margin
                } else {
                    outRect.right = halfSpacing
                }
            }
    
            setTopSpacing()
            setBottomSpacing()
            setLeftSpacing()
            setRightSpacing()
        }
    }

    5c2cd234a1cfe583817132.png
    Ответ написан
    Комментировать
  • Переход по кнопке из одного активити во фрагмент другого активити. Как реализовать?

    @Gnoemes
    Возможно я не верно понял, но я бы сделал так:
    1. Запускаешь вторую активити через startActivityForResult, при клике на кнопку (делаешь callback с фрагмента на активити)
    2. Во второй активити при клике суешь какую-то мета информацию и уничтожаешь активити
    3. В первой активити перехватываешь информацию в onActivityResult и на ее основе добавляешь второй фрагмент
    Ответ написан
    5 комментариев
  • Как исправить ошибку cannot be applied?

    @Gnoemes
    gridViewAdap = new GridViewAdapter(FragmentMems.this, items);
    Замени FragmentMems.this на getContext()
    Ответ написан
    Комментировать