隐藏所选行android的listdivider?

时间:2015-06-16 07:18:06

标签: android listview divider

我有一个android原生listview.now我必须隐藏只有选定行的分隔符和它的邻居行,如下图所示。我能做到吗?

enter image description here

  

这是我的lisview代码

ClientConstants.RESOURCES = "/main/resources/images/";
if (status.equals(ClientConstants.STATUS_OFFLINE)) 
{
    img = ClientConstants.RESOURCES+"ON.png";
    action = "Connect";
}
else 
{
    img = ClientConstants.RESOURCES+"OFF.png";
    action = "Disconnect";
}
Image imageConnect = new Image(getClass().getResourceAsStream(img));
ImageView viewBottom = new ImageView(imageConnect);
  

到目前为止的结果

enter image description here

4 个答案:

答案 0 :(得分:1)

在自定义列表项布局中创建自定义分隔视图。 然后,如果选择了某个项目,则隐藏此自定义分隔视图。

风格:

<style name="HorizontalDivider">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">1px</item>
    <item name="android:background">#444</item>
</style>

自定义列表项:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="5dp"
    android:background="@drawable/click_effect_green"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/line_a"
        android:layout_marginTop="4dp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#000"
        android:textSize="16dp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/line_b"
        android:layout_marginBottom="4dp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#000"
        android:textSize="14dp" />

     <View id="@+id/divider" style="@style/HorizontalDivider"/>
</LinearLayout>

答案 1 :(得分:1)

您必须按照以下步骤操作:

  1. 删除列表视图分隔符

     <ListView
        android:id="@+id/listView_errors"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:divider="@null"
        android:listSelector="@drawable/bgselected"
        android:scrollbars="none" />
    
  2. 添加了list_item.xml视图,视为list_divider

       <View
        android:id="@+id/list_divider"
        android:layout_width="fill_parent"
        android:layout_height="1dip"
        android:background="@android:color/black" />
    
  3. 您可以在选择列表项时删除视图分隔符,就像您在onItemClick上选择那样它应该是

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    
        view.findViewById(R.id.list_divider).setVisibility(View.GONE);
    
    }
    
  4. 这是您可以执行任何自定义行的解决方案。

答案 2 :(得分:0)

您可以尝试

onSelect代码

yourListView.setDivider(null);

yourListView.setDivider(new ColorDrawable(android.R.color.transparent));
yourListView.setDividerHeight(0);

答案 3 :(得分:-1)

<强> list_item.xml

 Menu menuAccount = navigationView.getMenu().findItem(R.id.drawer_item_account).getSubMenu();
 menuAccount.findItem(R.id.drawer_item_login).setVisible(!isLoggedIn);

<强> 的Listview

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="55dp"
    android:orientation="vertical"

    >

    <TextView
        android:id="@+id/item_complaint"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="20dp"
        android:text="Daily Consumption"
        android:textColor="#505050"
        android:textSize="18sp"
        android:textStyle="bold" />

    <View
        android:id="@+id/item_divider"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="#9e9e9e" />


</RelativeLayout>

<强> 适配器

  <ListView
            android:id="@+id/listView_errors"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:divider="@null"
            android:layout_gravity="center_horizontal"
            android:listSelector="@drawable/bgselected"
            android:scrollbars="none" />

分隔控制器

 ArrayAdapter<String> ar = new ArrayAdapter<String>(getActivity(), R.layout.complaint_listview, R.id.item_complaint, errors);
                listErrors.setAdapter(ar);