gpt4 book ai didi

android - RecyclerView 布局管理器列表项占据了整个屏幕

转载 作者:数据小太阳 更新时间:2023-10-29 02:48:55 26 4
gpt4 key购买 nike

所以我制作了这个包含 RecycleView 的简单 fragment 。回收 View 有一个自定义的相对布局,带有两个 TextView 和一个 CheckBox。问题是单个列表项占用了整个 AVD seceen 的空间,我为列表项设置的监听器不起作用。

here is a screenshot of the AVD screen (I am using android studio)

And when scrolled

XML布局代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<CheckBox
android:id="@+id/list_item_crime_solved_check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:padding="4dp"
/>
<TextView
android:id="@+id/list_item_crime_title_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/list_item_crime_solved_check_box"
android:textStyle="bold"
android:padding="4dp"
tools:text="Crime Title"/>
<TextView
android:id="@+id/list_item_crime_date_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/list_item_crime_solved_check_box"
android:layout_below="@id/list_item_crime_title_text_view"
android:padding="4dp"
tools:text="Crime date"
/>
</RelativeLayout>

fragment java代码:

package com.bignerdranch.android.criminalintent;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;

public class CrimeListFragment extends Fragment
{
private RecyclerView mCrimeRecyclerView;
private CrimeAdabter mCrimeAdabter;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.fragment_crime_list, container, false);
mCrimeRecyclerView = (RecyclerView) v.findViewById(R.id.crime_recycler_view);
mCrimeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
updateUI();
return v;
}

private void updateUI()
{
CrimeLab crimeLab = CrimeLab.get(getActivity());
List<Crime> crimes = crimeLab.getCrimes();
mCrimeAdabter = new CrimeAdabter(crimes);
mCrimeRecyclerView.setAdapter(mCrimeAdabter);
}


}

ViewHolder java代码:

private class CrimeHolder extends RecyclerView.ViewHolder implements View.OnClickListener
{
private TextView mTitleTextView;
private TextView mDateTextView;
private CheckBox mCrimeSolvedCheckBox;
private Crime mCrime;

public CrimeHolder(View itemView)
{
super(itemView);
mTitleTextView = (TextView) itemView.findViewById(R.id.list_item_crime_title_text_view);
mDateTextView = (TextView) itemView.findViewById(R.id.list_item_crime_date_text_view);
mCrimeSolvedCheckBox = (CheckBox) itemView.findViewById(R.id.list_item_crime_solved_check_box);
}

public void bindCrime(Crime crime)
{
mCrime = crime;
mTitleTextView.setText(mCrime.getTitle());
mDateTextView.setText(mCrime.getDate().toString());
mCrimeSolvedCheckBox.setChecked(mCrime.isSolved());
}

@Override
public void onClick(View v)
{
Intent i=new Intent(getActivity(),CrimeActivity.class);
startActivity(i);
}
}

和适配器 java 代码:

private class CrimeAdabter extends RecyclerView.Adapter<CrimeHolder>
{
private List<Crime> mCrimes;

public CrimeAdabter(List<Crime> crimes)
{
mCrimes = crimes;
}

@Override
public CrimeHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
LayoutInflater inflater = LayoutInflater.from(getActivity());
View v = inflater.inflate(R.layout.list_item_crime, parent, false);

return new CrimeHolder(v);
}

@Override
public void onBindViewHolder(CrimeHolder holder, int position)
{
Crime crime = mCrimes.get(position);
holder.bindCrime(crime);

}


@Override
public int getItemCount()
{
return mCrimes.size();
}
}

最佳答案

这是因为您的根 RelativeLayout 的高度设置为 ma​​tch_parent。使其成为 wrap_content 或特定高度。

关于android - RecyclerView 布局管理器列表项占据了整个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com