我想知道在GridView中的項目之間繪製分隔線的最簡單方法(當前是textviews)。我能想到的唯一方法就是圍繞這些文字視圖繪製邊框,所以當它們合併時,它們看起來像連續的水平和垂直分隔線。Android GridView繪製分隔線
有一個setDivider()列表視圖,但不是gridviews?
謝謝。
我想知道在GridView中的項目之間繪製分隔線的最簡單方法(當前是textviews)。我能想到的唯一方法就是圍繞這些文字視圖繪製邊框,所以當它們合併時,它們看起來像連續的水平和垂直分隔線。Android GridView繪製分隔線
有一個setDivider()列表視圖,但不是gridviews?
謝謝。
不幸的是,在查看源代碼後,除了採用向每個單元格添加邊框的方法之外,我看不到任何添加邊框的簡單方法。作爲參考,我會在這裏發佈我的解決方案。
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="@drawable/list_selector">
<!-- Cell contents -->
</LinearLayout>
list_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@drawable/item_border_selected"
/>
<item
android:state_pressed="true"
android:drawable="@drawable/item_border_selected"
/>
<item
android:drawable="@drawable/item_border"
/>
</selector>
item_border.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="@android:color/transparent"
/>
<stroke
android:width="1px"
android:color="@color/list_divider"
/>
</shape>
item_border_selected.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="@color/list_select"
/>
<stroke
android:width="1px"
android:color="@color/list_divider"
/>
</shape>
items_view.xml
<?xml version="1.0" encoding="utf-8"?>
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="-1px"
android:layout_marginRight="-1px"
android:listSelector="@android:color/transparent"
/>
由於面積擴大一倍,因爲他們加入他們的相鄰小區的所有行,我做除法1px的大小,而不是1DP所以它不」在某些屏幕上顯示得太大。此外,我使網格視圖具有負邊界來隱藏任何一邊的線條。我希望這可以幫助別人。
不錯。你的list_divider和list_select被定義爲什麼? – LuxuryMode
謝謝,在list_selector.xml中,我使用了「@ drawable/item_border」它與項目的組成部分一樣工作正常,問題在於如何避免UI上的分隔符上的onclick監聽器?如果點擊該項目的邊框也選擇:(!!任何解決方案?? –
如果你只想簡單的線條作爲邊框,非常非常簡單的設置是背景顏色爲GridView
和適當的填充&間距:
<GridView
(...)
android:background="@color/LightGold"
android:listSelector="@android:color/transparent"
android:horizontalSpacing="1dip"
android:verticalSpacing="1dip"
android:paddingLeft="1dip"
android:paddingTop="1dip" />
http://stackoverflow.com/a/12047760/ 375093這個答案似乎比下面的答案更容易,更聰明 – Sundeep
@Sundeep:如果你設置了一個GridView項目的背景顏色,那麼它的顏色項目在聚焦時不會改變。用戶的選擇克服了這個問題。 –
@Sundeep它會減慢繪製過程。 – twlkyao