zoukankan      html  css  js  c++  java
  • ListView控件的列表项的文字不满一行的时候,如何实现点击该列表项的空白区域仍可触发列表项的点击事件

    今天在做Demo的过程中,使用到了ListView。然而在实现过程中,发现一个出现了一个问题:只能点击列表项的文字区域可以触发点击事件,而点击列表项的空白区域无法触发点击事件。

    如下图:

    listitem的布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        
        <TextView
            android:id="@+id/listitemText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
             android:text="@string/app_name"
             android:textSize="18sp"
            android:textColor="#000000"
            android:gravity="center_vertical"
            android:padding="15dp"
        />
    
    </LinearLayout>
    listitem

    刚开始以为是这个布局文件中的android:layout_width的问题,后来发现是ListView控件的android:layout_width的问题。

    上图对应的ListView控件的android:layout_width的值为wrap_content。

    <!-- 历史记录列表 -->
                <!-- android:layout_width="match_parent"使用这个则代表列表项占据屏幕宽度 -->
                <!-- android:layout_width="wrap_content"使用这个则代表列表项占据实际宽度 -->
                <ListView
                    android:id="@+id/history_list"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" >
                </ListView>

    如果想要实现列表项在不满一行的情况下,点击空白区域仍触发列表项的点击事件的话,ListView的写法如下:

    <!-- 历史记录列表 -->
                <!-- android:layout_width="match_parent"使用这个则代表列表项占据屏幕宽度 -->
                <!-- android:layout_width="wrap_content"使用这个则代表列表项占据实际宽度 -->
                <ListView
                    android:id="@+id/history_list"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" >
                </ListView>

    效果图如下:

  • 相关阅读:
    (dfs)codeforces 767C
    配置vscode c/c++像sublime那样按Ctrl+shift+B编译直接运行
    (JAVA)使用swing组件模仿QQ界面+网络编程实现QQ消息传输
    (dp)hihocoder
    (暴力+精度)hihocoder
    区域赛43天
    区域赛第33天
    区域赛41天
    最小和最大表示法
    HDU 6166 二进制划分集合
  • 原文地址:https://www.cnblogs.com/whycxb/p/4858935.html
Copyright © 2011-2022 走看看