2 мерный свиток для сетки в Android - PullRequest
0 голосов
/ 02 января 2019

Я пытался создать (потенциально бесконечную) сетку для прокрутки, но пока безуспешно. У меня проблема с рендерингом GridView вне экрана. Вот почему я хотел бы спросить, есть ли какой-либо другой компонент в Android, который может быть использован для этой задачи?

grid to scroll in Android

Ответы [ 3 ]

0 голосов
/ 02 января 2019

Я хотел бы предложить это evrencoskun / TableView .

Это позволяет вам прокручивать как по горизонтали, так и по вертикали.

<com.evrencoskun.tableview.TableView
android:id="@+id/content_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
0 голосов
/ 11 января 2019

В зависимости от ваших требований, это может быть как настольный RecyclerView с бесконечной прокруткой, так и какой-нибудь движок 2d игры (на случай, если стоит использовать его для этой функции), может быть оптимальным решением для вас.

RecyclerView

В случае, если вы просто хотите сохранить некоторые объекты (графические или нет - на самом деле не имеет значения, можете ли вы упаковать их в ячейки), вы можете использовать какой-то адаптер RecyclerView с расширением для безграничной прокрутки.

Таким образом, вы можете сэкономить память, используя механизм перезаписи представлений. Используя детальные механизмы уведомления (например, перемещенный / удаленный элемент), вы даже можете добавить анимацию, если объекты движутся.

В дополнение к предлагаемому решению, подобному evrencoskun / TableView , я бы предложил взглянуть на то, как работает GridLayoutManger в целом, вот первый пост из трех в относительно глубоком обзоре того, как работает RecyclerView и LayoutManager, чтобы вы могли разработать более легкое решение для вашего конкретного случая. Существует простое демонстрационное приложение , «Фиксированный двусторонний список» с опцией «Большая сетка» может дать вам некоторое представление о том, что будет построено. Вам нужно будет расширить его для работы с бесконечными списками, но это будет проще, если вы понимаете внутреннее устройство.

2D двигатель

Если идея состоит в том, чтобы над плитками иметь произвольную графику с произвольными размерами, а эта функция является основной для вашего приложения, возможно, стоит подумать об использовании некоторого 2d-движка, такого как libdx. У них есть много примеров, как его использовать, но, конечно, вам понадобится немного памяти и времени на его изучение: libgdx wike

Собственное решение

Если ни то, ни другое не удовлетворяет вашим потребностям, я думаю, вам придется искать собственное решение с нуля. Не забывайте оптимизировать его, поскольку каждая бесконечная вещь в Android, особенно связанная с графикой, может легко привести к ошибкам нехватки памяти.

0 голосов
/ 02 января 2019

может эта ссылка будет вам полезна

https://github.com/jess-anders/two-way-gridview

<?xml version="1.0" encoding="utf-8"?>
<com.jess.ui.TwoWayGridView
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="#E8E8E8"
    android:id="@+id/gridview"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    app:cacheColorHint="#E8E8E8"
    app:columnWidth="80dp"
    app:rowHeight="80dp"
    app:numColumns="auto_fit"
    app:numRows="auto_fit"
    app:verticalSpacing="16dp"
    app:horizontalSpacing="16dp"
    app:stretchMode="spacingWidthUniform"
    app:scrollDirectionPortrait="vertical"
    app:scrollDirectionLandscape="horizontal"
    app:gravity="center"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...