use*_*886 8 android android-layout material-design
我CardView在XML中定义了多个:
<android.support.v7.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
card_view:cardPreventCornerOverlap="false"
card_view:cardCornerRadius="4dp">
<LinearLayout
android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:textSize="@dimen/abc_text_size_title_material"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)
对于手机,我已经将多个包装CardView在垂直方向LinearLayout:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
Run Code Online (Sandbox Code Playgroud)
对于平板电脑,我想使用网格布局,类似于Material Design规范中使用的设计,请参见此处的图像.
ViewGroup制作网格布局最好用的是什么?这些卡的高度可变,并且具有静态内容.
GridLayout 不能使用,因为卡的高度可变.
Ari*_*Roy 12
一段时间以来我遇到过同样的问题.是的,您不能使用,GridLayout因为您的卡片大小可变.那么你在寻找StaggeredGridView,它允许它的项目具有可变的大小.
您可以执行以下任一操作: -
1)您可以使用此或此库.它们使用起来非常简单.我已经使用了两者,我可以向你保证,他们完美地完成了他们的工作.
2)您可以尝试使用Google 的RecyclerView.StaggeredGridLayoutManager.
示例代码看起来像这样的事情,
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));
recyclerView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
希望它能帮到你.