我已经在一行中实现了两列,就像使用网格视图一样,如下所示。但是我最近才知道有卡片视图小部件,它更好。但我想知道如何在一行中制作两列? 如果可能,你建议我从网格视图切换到卡片视图吗?现在常用吗?
<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swiperefresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:verticalSpacing="2dp"
android:horizontalSpacing="2dp"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:stretchMode="columnWidth"
android:numColumns="2"/>
</android.support.v4.widget.SwipeRefreshLayout>
以下xml是否可以在一行中创建两列?
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content">
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content">
</android.support.v7.widget.CardView>
</LinearLayout>
答案 0 :(得分:4)
我建议你使用Recyclerview和cardview。 Gridview是一个旧视图,Google很快就会弃用。 Recyclerview优于gridview。
您不必在Gridview中的单行中添加两列。相反,您可以使用Recyclerview来获得它。 Cardview只是视图的列表项背景。 - 只需设计与您的设计相对应的列表项 - 将其添加到RecyclerViewAdaper中 - 使用RecyclerView连接 - 解决它。
以下是卡片视图中带有网格项的recyclerview示例。
答案 1 :(得分:0)
以下是使用RecyclerView
:
https://github.com/javatechig/Android-RecyclerView-Example
在此布局中使用CardView
:
List_row.xml
这样的事情:
<android.support.v7.widget.CardView
android:id="@+id/card_view"
android:background="@color/white"
android:layout_width="200dp"
android:layout_height="200dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/info_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Textview one"
android:gravity="center"
android:textSize="36sp" />
<TextView
android:id="@+id/info_text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Textview two"
android:gravity="center"
android:textSize="36sp" />
</LinearLayout>
</android.support.v7.widget.CardView>
并且不建议使用GridView
。RecyclerView
已经GridLayoutManager
。