已单击的Android ListView项目不工作

已单击的Android ListView项目不工作,android,android-studio,listview,android-fragments,Android,Android Studio,Listview,Android Fragments,我不明白出了什么问题,当单击列表中的某个项目时,没有任何附加内容。 我的环境是minsdk:21、maxsdk:27、java8(openjdk)、androidstudio 3.1.4、终端android6.0 注意:使用FragmentManager或SupportFragmentManager可提供相同的结果 片段列表布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:/

我不明白出了什么问题,当单击列表中的某个项目时,没有任何附加内容。 我的环境是minsdk:21、maxsdk:27、java8(openjdk)、androidstudio 3.1.4、终端android6.0

注意:使用FragmentManager或SupportFragmentManager可提供相同的结果

片段列表布局

<?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="match_parent"
    android:orientation="vertical"
android:descendantFocusability="blocksDescendants"
    >

    <ListView
        android:id="@+id/list"
        android:dividerHeight="1sp"

        android:divider="@color/blue_serenity_transparent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
<?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="horizontal"
    >
        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:useDefaultMargins="true"
            android:background="@color/blue_serenity_transparent"
            android:columnCount="3"
            android:rowCount="2"
            >

            <ImageView
                android:id="@+id/notif_type"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_column="0"
                android:layout_row="0"
                android:layout_gravity="center_vertical"
                 />

            <TextView
                android:id="@+id/title"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center"
                android:layout_column="1"
                android:layout_row="0"
                android:textSize="18dp"
                android:textColor="@color/black"
                />

            <TextView
                android:id="@+id/date"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_row="1"
                android:layout_column="1"
                />

        </GridLayout>
</LinearLayout>

列表行布局

<?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="match_parent"
    android:orientation="vertical"
android:descendantFocusability="blocksDescendants"
    >

    <ListView
        android:id="@+id/list"
        android:dividerHeight="1sp"

        android:divider="@color/blue_serenity_transparent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
<?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="horizontal"
    >
        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:useDefaultMargins="true"
            android:background="@color/blue_serenity_transparent"
            android:columnCount="3"
            android:rowCount="2"
            >

            <ImageView
                android:id="@+id/notif_type"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_column="0"
                android:layout_row="0"
                android:layout_gravity="center_vertical"
                 />

            <TextView
                android:id="@+id/title"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center"
                android:layout_column="1"
                android:layout_row="0"
                android:textSize="18dp"
                android:textColor="@color/black"
                />

            <TextView
                android:id="@+id/date"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_row="1"
                android:layout_column="1"
                />

        </GridLayout>
</LinearLayout>

列表设置

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    List<NotificationBean> data = new NotificationBean().list(getActivity().getBaseContext());

    View v = inflater.inflate(R.layout.fragment_notifications, container, false);
    list = (ListView) v.findViewById(R.id.list);

    listAdapter = new Adapter(getActivity().getBaseContext(), data);
    list.setAdapter(listAdapter);

    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Log.e(TAG, "row clicked");
        }
    });

    return v;

}
@覆盖
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
列表数据=新建NotificationBean().List(getActivity().getBaseContext());
视图v=充气机。充气(R.layout.fragment_通知,容器,错误);
list=(ListView)v.findViewById(R.id.list);
listAdapter=新适配器(getActivity().getBaseContext(),数据);
list.setAdapter(listAdapter);
list.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Log.e(标记“单击行”);
}
});
返回v;
}
列出适配器

class NotificationsAdapter extends BaseAdapter {

    private Context context;
    private LayoutInflater inflater = null;
    private List<NotificationBean> notifications;

    public NotificationsAdapter(Context context, List<NotificationBean> notifications){
        this.context = context;
        this.notifications = notifications;
        inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public int getCount() {
        return notifications.size();
    }

    @Override
    public Object getItem(int position) {
        return notifications.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View v = convertView;
        if (v == null)
            v = inflater.inflate(R.layout.fragment_notifications_row, null);

        NotificationBean n = notifications.get(position);

        GridLayout layout = (GridLayout) v.findViewById(R.id.row_layout);

        if (dark) layout.setBackgroundColor(getResources().getColor(R.color.blue_serenity_transparent));
        else layout.setBackgroundColor(getResources().getColor(R.color.white));
        dark = !dark;

        ImageView notifType = (ImageView) v.findViewById(R.id.notif_type);
        notifType.setImageResource(n.getIcon());

        TextView title = (TextView) v.findViewById(R.id.title);
        title.setText(n.getTitle());

        TextView date = (TextView) v.findViewById(R.id.date);
        date.setText(Constants.DTF.format(n.getDate()));

        return v;
    }
}
class NotificationsAdapter扩展了BaseAdapter{
私人语境;
专用充气机=空;
私人名单通知;
公共通知适配器(上下文、列表通知){
this.context=上下文;
this.notifications=通知;
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
}
@凌驾
public int getCount(){
返回通知。size();
}
@凌驾
公共对象getItem(int位置){
返回通知。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图v=转换视图;
如果(v==null)
v=充气机充气(R.layout.fragment\u notifications\u row,null);
NotificationBean n=notifications.get(位置);
GridLayout=(GridLayout)v.findViewById(R.id.row_布局);
if(暗)layout.setBackgroundColor(getResources().getColor(R.color.blue\u serenity\u transparent));
else layout.setBackgroundColor(getResources().getColor(R.color.white));
黑暗=!黑暗;
ImageView notifType=(ImageView)v.findViewById(R.id.notif_type);
setImageResource(n.getIcon());
TextView title=(TextView)v.findViewById(R.id.title);
title.setText(n.getTitle());
TextView日期=(TextView)v.findViewById(R.id.date);
date.setText(Constants.DTF.format(n.getDate());
返回v;
}
}

add this line in List row layout其父LinearLayout android:clickable=“false”Aniruddh可能重复,已在线性和网格布局上尝试了clickable+focusable:false。。它在另一个线程中找到的android:genderantfocusability=“blocksDescendants”解决方案中不起作用。但是谢谢你的回答