GridView 的可绘制分隔线
Drawable dividers for a GridView
如何为 GridView 设置自定义分隔线?
我的意思是,有一个带有蓝色渐变分隔线的 .png 项目,但我如何将它放在 GridView 的正确位置?
通过互联网搜索没有带来任何可行的结果..
预期:
现实:
gridview 包装器 xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/primary_blue_dark"
android:orientation="vertical">
....
<GridView
android:id="@+id/gv_stock"
android:paddingEnd="@dimen/activity_horizontal_margin"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchMode="columnWidth"
android:numColumns="2"/>
</LinearLayout>
网格视图项目xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/primary_blue_dark"
style="@style/padded_layout"
android:weightSum="2">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_weight="1">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/teal_text_middle"
android:gravity="center"
android:text="test"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_weight="1"
android:gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.7"/>
<ImageView
android:id="@+id/iv_arrow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1.3"
android:src="@drawable/ic_arrow_green"/>
</LinearLayout>
<TextView
android:id="@+id/tv_value"
android:layout_width="wrap_content"
android:layout_height="match_parent"
style="@style/white_text_big"
android:gravity="center"
android:text="test"/>
</LinearLayout>
</LinearLayout>
通过使用此答案 here 并简单地更改像这样的图像的灰色纯色背景颜色(我将其设置为 hdpi 分辨率 - 但它应该可以很好地向上和向下拉伸),
你应该得到这样的效果(这里是在 ldpi 设备上,所以缩小了两倍):
这与您要查找的内容相差不远。
它有效,至少在原则上是这样。它可能需要一些调整(缩小垂直中心部分),但你已经明白了。
您可能还想覆盖一些顶部(也可能是底部)部分,以隐藏技巧。
用一个简单的"see through"效果,就可以避免搞乱styles/themes。
[编辑]
是的,我知道,它是 MAINZ,而不是 MEINZ(但是,好吧......发音确实是一样的!快点是一个糟糕的顾问,你知道)。
使用 GridLayoutManager with Recyclerview and add the Itemdecoration from the following gist。您可以根据需要更改偏移量。
如何为 GridView 设置自定义分隔线?
我的意思是,有一个带有蓝色渐变分隔线的 .png 项目,但我如何将它放在 GridView 的正确位置?
通过互联网搜索没有带来任何可行的结果..
预期:
现实:
gridview 包装器 xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/primary_blue_dark"
android:orientation="vertical">
....
<GridView
android:id="@+id/gv_stock"
android:paddingEnd="@dimen/activity_horizontal_margin"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchMode="columnWidth"
android:numColumns="2"/>
</LinearLayout>
网格视图项目xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/primary_blue_dark"
style="@style/padded_layout"
android:weightSum="2">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_weight="1">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/teal_text_middle"
android:gravity="center"
android:text="test"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_weight="1"
android:gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.7"/>
<ImageView
android:id="@+id/iv_arrow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1.3"
android:src="@drawable/ic_arrow_green"/>
</LinearLayout>
<TextView
android:id="@+id/tv_value"
android:layout_width="wrap_content"
android:layout_height="match_parent"
style="@style/white_text_big"
android:gravity="center"
android:text="test"/>
</LinearLayout>
</LinearLayout>
通过使用此答案 here 并简单地更改像这样的图像的灰色纯色背景颜色(我将其设置为 hdpi 分辨率 - 但它应该可以很好地向上和向下拉伸),
你应该得到这样的效果(这里是在 ldpi 设备上,所以缩小了两倍):
这与您要查找的内容相差不远。
它有效,至少在原则上是这样。它可能需要一些调整(缩小垂直中心部分),但你已经明白了。 您可能还想覆盖一些顶部(也可能是底部)部分,以隐藏技巧。
用一个简单的"see through"效果,就可以避免搞乱styles/themes。
[编辑]
是的,我知道,它是 MAINZ,而不是 MEINZ(但是,好吧......发音确实是一样的!快点是一个糟糕的顾问,你知道)。
使用 GridLayoutManager with Recyclerview and add the Itemdecoration from the following gist。您可以根据需要更改偏移量。