Ответ 1
Проверьте это на Git
Он позволяет вам устанавливать изображения, как вы хотите.
Проверьте это в Play Store
Я использую RecyclerView
с StaggeredGridLayoutManager
.
Я хочу, чтобы этот StaggeredGridLayoutManager
или какой-либо LayoutManager
занимал пустые области, если они есть. Например, если я установил spanCount = 3
он должен занимать всю ширину экрана, даже у меня есть 2 элемента или 1 элемент. В StaggeredGridLayoutManager
я могу полностью разбить одну строку на: setFullSpan(true);
, но не может охватывать 2 элемента только для одной строки.
Мой код для RecyclerView
:
StaggeredGridLayoutManager sglm= new StaggeredGridLayoutManager(spanCount,StaggeredGridLayoutManager.VERTICAL);
sglm.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS);
Я попробовал AsymmetricGridView и twoway-view но всегда есть пустая область
Я собираю скриншоты приложения Facebook:
И вот приложение Google Keep, так как вы можете видеть, что высота строки фиксирована для каждой строки, но ширина элементов является гибкой, и я никогда не видел пустую область с Google Keep:
И когда я его использую, всегда есть пустая область, так как вы можете видеть, что черная часть изображения пуста. Я хочу, чтобы RecyclerView
занял эту область, расширив мои строки, как в приложении Google Keep:
Я посетил эту страницу: android-how-to-create-a-facebook-like-images-gallery-grid, но мне это не помогло.
Вот другая страница, которую я посетил: grid-of-images-like-facebook-for-android
Кто-нибудь использует RecyclerView
или любой View
, как это?
Может ли кто-нибудь предложить мне любой путь или какую-либо идею или направить меня туда, где я должен начать?
Проверьте это на Git
Он позволяет вам устанавливать изображения, как вы хотите.
Проверьте это в Play Store
/**
* A LayoutManager that lays out children in a staggered grid formation.
* It supports horizontal & vertical layout as well as an ability to layout children in reverse.
* <p>
* Staggered grids are likely to have gaps at the edges of the layout. To avoid these gaps,
* StaggeredGridLayoutManager can offset spans independently or move items between spans. You can
* control this behavior via {@link #setGapStrategy(int)}.
*/
/**
* Sets the gap handling strategy for StaggeredGridLayoutManager. If the gapStrategy parameter
* is different than the current strategy, calling this method will trigger a layout request.
*
* @param gapStrategy The new gap handling strategy. Should be
* {@link #GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS} or {@link
* #GAP_HANDLING_NONE}.
* @see #getGapStrategy()
*/
public void setGapStrategy(int gapStrategy) {
assertNotInLayoutOrScroll(null);
if (gapStrategy == mGapStrategy) {
return;
}
if (gapStrategy != GAP_HANDLING_NONE &&
gapStrategy != GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS) {
throw new IllegalArgumentException("invalid gap strategy. Must be GAP_HANDLING_NONE "
+ "or GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS");
}
mGapStrategy = gapStrategy;
setAutoMeasureEnabled(mGapStrategy != GAP_HANDLING_NONE);
requestLayout();
}