zoukankan      html  css  js  c++  java
  • Android 中关于ListView分割线的设置

    今天发现许多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 <ListView
    2 
    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     <TextView
    17         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 }

    关于文中不好的地方,欢迎各位批评指正!

  • 相关阅读:
    uitableview中文排序问题
    跳转到指定页面popToViewController用法
    [__NSCFConstantString size]: unrecognized selector sent to instance 错误
    [NSThread sleepForTimeInterval:3.0];
    XCode 4.3 Unable to load persistent store UserDictionary.sqlite 以及 ios simulator failed to install the application
    ios 6.0模拟器页面调出pop窗口消失后无法使用键盘
    iOS真机测试,为Provisioning添加设备
    [IOS笔记]
    UITableView 滚动时使用reloaddata出现 crash'-[__NSCFArray objectAtIndex:]: index (1) beyond bounds (0)' Crash
    C# 自定义用户控件
  • 原文地址:https://www.cnblogs.com/Talon-lly/p/5951014.html
Copyright © 2011-2022 走看看