標籤:
今天發現許多App上的listview的item之間的分割線都只顯示了右邊一部分,而左邊的那一半則沒有,第一反應則是給分割線設定一張背景圖片就ok了:
android:divider="@mipmap/line"
然而,後來網上找找資料後發現,可以自己去定義一個drawable,將其設定為listview的分割線(divider)
:
1.drawable下的listview_item_divider:
1 <?xml version="1.0" encoding="utf-8"?>2 <inset xmlns:android="http://schemas.android.com/apk/res/android"3 android:insetLeft="100dp"4 android:insetRight="15dp"5 android:drawable="@color/line_gray">6 7 </inset>
2.activity_main裡的listview:
1 <ListView2 3 android:id="@+id/lv_main"4 android:divider="@drawable/listview_item_divider"5 android:dividerHeight="1dp"6 android:layout_width="match_parent"7 android:layout_height="match_parent">8 </ListView>
3.item布局:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="wrap_content" 5 android:orientation="horizontal" 6 android:padding="3dp"> 7 8 <ImageView 9 android:id="@+id/img_item"10 android:layout_width="100dp"11 android:layout_height="100dp"12 android:contentDescription="@null"13 android:scaleType="fitXY"14 android:src="@mipmap/octocat" />15 16 <TextView17 android:id="@+id/tv_item"18 android:layout_width="match_parent"19 android:layout_height="100dp"20 android:gravity="center"21 android:text="TITLE"22 android:textSize="15sp" />23 24 </LinearLayout>
4.MainActivity(由於比較簡單,所以並沒有嚴格規範編碼格式)
1 public class MainActivity extends AppCompatActivity { 2 3 private ListView mListView; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 mListView = (ListView) findViewById(R.id.lv_main);10 // 為listview設定資料(沒有改變圖片,僅僅設定了不同的title)11 List<Map<String, String>> list = new ArrayList<>();12 for (int i = 0; i < 20; i++) {13 Map<String, String> map = new HashMap<>();14 map.put("title", "Talon" + i);15 list.add(map);16 }17 SimpleAdapter adapter = new SimpleAdapter(this, list,18 R.layout.listview_item, new String[]{"title"},19 new int[]{R.id.tv_item});20 mListView.setAdapter(adapter);21 }22 }
關於文中不好的地方,歡迎各位批評指正!
Android 中關於ListView分割線的設定