片段中的RecyclerView无法正常工作

用户名

我想在里面做一个RecyclerView容器Cards

问题是我感到有些奇怪。就像下面的屏幕截图所示(请注意另一张与下面的卡重叠的卡-下面的卡仅是我要显示的内容):

在此处输入图片说明

这是ListContentAAR.java文件的代码

class ListContentAAR {
    int hImage;
    String hPicTag;
    String hDescription;
    String hLocation;
    Button btn_accept;
    Button btn_share;
    String postDate;
    String postTime;
    String postedBy;

    ListContentAAR(int hImage,
            String hPicTag,
            String hDescription,
            String hLocation,
            Button btn_accept,
            Button btn_share,
            String postDate,
            String postTime,
            String postedBy) {
        this.hImage = hImage;
        this.hPicTag = hPicTag;
        this.hDescription = hDescription;
        this.hLocation = hLocation;
        this.btn_accept = btn_accept;
        this.btn_share = btn_share;
        this.postDate = postDate;
        this.postTime = postTime;
        this.postedBy = postedBy;
    }

}

这是RVAdapterAAR.java文件的代码

public class RVAdapterAAR extends RecyclerView.Adapter<RVAdapterAAR.PersonViewHolder> {

    public static class PersonViewHolder extends RecyclerView.ViewHolder {

        CardView cardView;
        ImageView hImage;
        TextView hPicTag;
        TextView hDescription;
        TextView hLocation;
        Button btn_accept;
        Button btn_share;
        TextView postDate;
        TextView postTime;
        TextView postedBy;

        PersonViewHolder(View itemView) {
            super(itemView);
            cardView = (CardView) itemView.findViewById(R.id.card_accept_request);
            hImage = (ImageView) itemView.findViewById(R.id.h_pic_accept);
            hPicTag = (TextView) itemView.findViewById(R.id.h_pic_tag);
            hDescription = (TextView) itemView.findViewById(R.id.h_description_accept);
            hLocation = (TextView) itemView.findViewById(R.id.h_location_tag);
            btn_accept = (Button) itemView.findViewById(R.id.btn_accept);
            btn_share = (Button) itemView.findViewById(R.id.btn_share);
            postDate = (TextView) itemView.findViewById(R.id.post_date);
            postTime = (TextView) itemView.findViewById(R.id.post_time);
            postedBy = (TextView) itemView.findViewById(R.id.posted_by);
        }

    }

    List<ListContentAAR> listContentAARs;

    RVAdapterAAR(List<ListContentAAR> listContentAARs) {
        this.listContentAARs = listContentAARs;
    }

    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }

    public PersonViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.fragment_accept_a_request, viewGroup, false);
        PersonViewHolder personViewHolder = new PersonViewHolder(view);
        return personViewHolder;
    }

    public void onBindViewHolder (PersonViewHolder personViewHolder, int i) {
        personViewHolder.hImage.setImageResource(listContentAARs.get(i).hImage);
        personViewHolder.hPicTag.setText(listContentAARs.get(i).hPicTag);
        personViewHolder.hDescription.setText(listContentAARs.get(i).hDescription);
        personViewHolder.hLocation.setText(listContentAARs.get(i).hLocation);
        // something for btn_accept
        // something for btn_share
        personViewHolder.postDate.setText(listContentAARs.get(i).postDate);
        personViewHolder.postTime.setText(listContentAARs.get(i).postTime);
        personViewHolder.postedBy.setText(listContentAARs.get(i).postedBy);
    }

    public int getItemCount() {
        return listContentAARs.size();
    }

}

这是AcceptARequest.java文件的代码

public class AcceptARequest extends Fragment{

    // TODO: Rename parameter arguments, choose names that match
    // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    // TODO: Rename and change types of parameters
    private String mParam1;
    private String mParam2;

    private OnFragmentInteractionListener mListener;

    public List<ListContentAAR> listContentAARs;
    public RecyclerView recyclerView;

    public AcceptARequest() {
        // Required empty public constructor
    }

    /**
     * Use this factory method to create a new instance of
     * this fragment using the provided parameters.
     *
     * @param param1 Parameter 1.
     * @param param2 Parameter 2.
     * @return A new instance of fragment AcceptARequest.
     */
    // TODO: Rename and change types and number of parameters
    public static AcceptARequest newInstance(String param1, String param2) {
        AcceptARequest fragment = new AcceptARequest();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }

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

        // Inflate the layout for this fragment

        View rootView = inflater.inflate(R.layout.fragment_accept_a_request, container, false);

                recyclerView = (RecyclerView) rootView.findViewById(R.id.accept_request_list);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setHasFixedSize(true);

        initializeData();
        initializeAdapter();

        return rootView;
    }

    private void initializeData(){

        listContentAARs = new ArrayList<>();
        listContentAARs.add(new ListContentAAR(R.drawable.ic_action_facebook,
                "H pic goes here",
                "H description goes here",
                "H location goes here",
                R.id.btn_accept,
                R.id.btn_share,
                "date",
                "time",
                "posted by"));
    }

    private void initializeAdapter(){
        RVAdapterAAR adapter = new RVAdapterAAR(listContentAARs);
        recyclerView.setAdapter(adapter);
    }

    // TODO: Rename method, update argument and hook method into UI event
    public void onButtonPressed(Uri uri) {
        if (mListener != null) {
            mListener.onFragmentInteraction(uri);
        }
    }

    @Override
    public void onDetach() {
        super.onDetach();
        mListener = null;
    }

    /**
     * This interface must be implemented by activities that contain this
     * fragment to allow an interaction in this fragment to be communicated
     * to the activity and potentially other fragments contained in that
     * activity.
     * <p/>
     * See the Android Training lesson <a href=
     * "http://developer.android.com/training/basics/fragments/communicating.html"
     * >Communicating with Other Fragments</a> for more information.
     */
    public interface OnFragmentInteractionListener {
        // TODO: Update argument type and name
        void onFragmentInteraction(Uri uri);
    }
}

这是fragment_accept_a_request.xml文件的代码

<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="wrap_content"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                tools:context="com.abc.xyz.AcceptARequest">

<include layout="@layout/accept_a_request_recyclerview"/>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/accept_request_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

    </android.support.v7.widget.RecyclerView>

</RelativeLayout>

这是accept_a_request_recyclerview.xml文件的代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                xmlns:tools="http://schemas.android.com/tools"
                tools:showIn="@layout/fragment_accept_a_request">

    <android.support.v7.widget.CardView
        android:id="@+id/card_accept_request"
        android:layout_width="match_parent"
        android:layout_height="@dimen/card_accept_request"
        app:cardElevation="2dp"
        app:cardUseCompatPadding="true"
        app:contentPadding="10dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/h_pic_accept"
                android:layout_width="match_parent"
                android:layout_height="@dimen/h_pic_dimen_accept"
                android:layout_gravity="center_horizontal|center_vertical"/>

            <TextView
                android:id="@+id/h_pic_tag"
                android:layout_width="match_parent"
                android:layout_height="@dimen/homeless_pic_dimen_accept"
                android:text="h pic goes here"
                android:gravity="center_horizontal|center_vertical"/>

            <TextView
                android:id="@+id/h_description_accept"
                android:layout_below="@+id/h_pic_tag"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="h description goes here"
                android:maxLines="5"/>

            <TextView
                android:id="@+id/h_location_tag"
                android:layout_below="@id/h_description_accept"
                android:layout_width="match_parent"
                android:layout_height="@dimen/h_pic_dimen_accept"
                android:text="h location goes here"
                android:gravity="center_horizontal|center_vertical"
                android:paddingTop="@dimen/paddings"
                android:paddingBottom="@dimen/paddings"/>

            <LinearLayout
                android:id="@+id/btn_accept_share_container"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_below="@id/h_location_tag">

                <Button
                    android:id="@+id/btn_accept"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/btn_accept"
                    android:textColor="@color/colorPrimary"
                    style="?android:attr/borderlessButtonStyle"/>

                <Button
                    android:id="@+id/btn_share"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/btn_share"
                    android:textColor="@color/colorPrimary"
                    style="?android:attr/borderlessButtonStyle"/>

            </LinearLayout>

            <LinearLayout
                android:id="@+id/date_time_container"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignEnd="@+id/btn_accept_share_container"
                android:layout_alignRight="@+id/btn_accept_share_container"
                android:orientation="vertical"
                android:layout_below="@id/homeless_location_tag">

                <TextView
                    android:id="@+id/post_date"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="date"/>

                <TextView
                    android:id="@+id/post_time"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="time"/>

            </LinearLayout>

            <TextView
                android:id="@+id/posted_by"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="posted by [name]"
                android:layout_alignParentBottom="true"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"/>

        </RelativeLayout>

    </android.support.v7.widget.CardView>

</RelativeLayout>

作为一个初学者,我完全不知道这里出了什么问题!

用户名

在解决了很多问题之后,我终于找到了解决方案。

很简单。

我只是改变了RelativeLayoutLinearLayout,和它的工作就像一个魅力!

这是最终fragment_accept_a_request.xml文件的代码

<LinearLayout 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"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                android:orientation="vertical"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                tools:context="com.humanehelper.humanehelper.AcceptARequest">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/accept_request_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

    <include layout="@layout/accept_a_request_recyclerview"/>

</LinearLayout>

这里的accept_a_request_recyclerview.xml文件的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                xmlns:tools="http://schemas.android.com/tools"
                tools:showIn="@layout/fragment_accept_a_request">

    <android.support.v7.widget.CardView
        android:id="@+id/card_accept_request"
        android:layout_width="match_parent"
        android:layout_height="@dimen/card_accept_request"
        app:cardElevation="2dp"
        app:cardUseCompatPadding="true"
        app:contentPadding="10dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/h_pic_accept"
                android:layout_width="match_parent"
                android:layout_height="@dimen/h_pic_dimen_accept"
                android:layout_gravity="center_horizontal|center_vertical"/>

            <TextView
                android:id="@+id/h_pic_tag"
                android:layout_width="match_parent"
                android:layout_height="@dimen/homeless_pic_dimen_accept"
                android:text="h pic goes here"
                android:gravity="center_horizontal|center_vertical"/>

            <TextView
                android:id="@+id/h_description_accept"
                android:layout_below="@+id/h_pic_tag"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal|center_vertical"
                android:text="h description goes here"
                android:maxLines="5"/>

            <TextView
                android:id="@+id/h_location_tag"
                android:layout_below="@id/h_description_accept"
                android:layout_width="match_parent"
                android:layout_height="@dimen/h_pic_dimen_accept"
                android:text="h location goes here"
                android:gravity="center_horizontal|center_vertical"
                android:paddingTop="@dimen/paddings"
                android:paddingBottom="@dimen/paddings"/>

            <LinearLayout
                android:id="@+id/btn_accept_share_container"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_below="@id/h_location_tag">

                <Button
                    android:id="@+id/btn_accept"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/btn_accept"
                    android:textColor="@color/colorPrimary"
                    style="?android:attr/borderlessButtonStyle"/>

                <Button
                    android:id="@+id/btn_share"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/btn_share"
                    android:textColor="@color/colorPrimary"
                    style="?android:attr/borderlessButtonStyle"/>

            </LinearLayout>

            <LinearLayout
                android:id="@+id/date_time_container"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignEnd="@+id/btn_accept_share_container"
                android:layout_alignRight="@+id/btn_accept_share_container"
                android:orientation="vertical"
                android:layout_below="@id/homeless_location_tag">

                <TextView
                    android:id="@+id/post_date"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="date"/>

                <TextView
                    android:id="@+id/post_time"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="time"/>

            </LinearLayout>

            <TextView
                android:id="@+id/posted_by"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="posted by [name]"
                android:layout_alignParentBottom="true"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"/>

        </RelativeLayout>

    </android.support.v7.widget.CardView>

</LinearLayout>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

片段中的Android Flipview无法正常工作

来自分类Dev

片段中的GestorDetector无法正常工作

来自分类Dev

带片段的RecyclerView无法正常工作!显示错误

来自分类Dev

recyclerview中的webview无法正常工作

来自分类Dev

替换片段无法正常工作

来自分类Dev

片段交易无法正常工作

来自分类Dev

视图分页器中的片段无法正常工作

来自分类Dev

自定义片段中的CastClassException无法正常工作

来自分类Dev

Onactivityresult在嵌套片段类android中无法正常工作

来自分类Dev

RecyclerView OnClick无法正常工作

来自分类Dev

RecyclerView:scrollToPosition无法正常工作

来自分类Dev

在RecyclerView中滚动时,加载位图无法正常工作

来自分类Dev

添加 setTextColor 后,OnItemClickListener 在 recyclerView 中无法正常工作?

来自分类Dev

Android片段翻译动画无法正常工作

来自分类Dev

片段addToBackStack()和popBackStackImmediate()无法正常工作

来自分类Dev

刷新ViewPager片段无法正常工作

来自分类Dev

片段内的DatePickerFragment无法正常工作

来自分类Dev

Rails片段缓存无法正常工作

来自分类Dev

Android片段动画无法正常工作

来自分类Dev

Android:片段之间的onActivityResult()无法正常工作

来自分类Dev

notifyDataSetChanged 在片段上无法正常工作

来自分类Dev

RecyclerView上的LinearLayoutManager的scrollToPositionWithOffset无法正常工作

来自分类Dev

Android RecyclerView,回收无法正常工作

来自分类Dev

嵌套的RecyclerView的notifyDataSetChanged()无法正常工作

来自分类Dev

RecyclerView上的LinearLayoutManager的scrollToPositionWithOffset无法正常工作

来自分类Dev

Android Recyclerview Onclicklistener无法正常工作

来自分类Dev

RecyclerView 在布局更改时无法正常工作

来自分类Dev

当我使用其他片段时,viewpager在lollipop 5.0中无法正常工作

来自分类Dev

片段中的AsyncTask无法正常工作,并显示致命异常:AsyncTask#1

Related 相关文章

  1. 1

    片段中的Android Flipview无法正常工作

  2. 2

    片段中的GestorDetector无法正常工作

  3. 3

    带片段的RecyclerView无法正常工作!显示错误

  4. 4

    recyclerview中的webview无法正常工作

  5. 5

    替换片段无法正常工作

  6. 6

    片段交易无法正常工作

  7. 7

    视图分页器中的片段无法正常工作

  8. 8

    自定义片段中的CastClassException无法正常工作

  9. 9

    Onactivityresult在嵌套片段类android中无法正常工作

  10. 10

    RecyclerView OnClick无法正常工作

  11. 11

    RecyclerView:scrollToPosition无法正常工作

  12. 12

    在RecyclerView中滚动时,加载位图无法正常工作

  13. 13

    添加 setTextColor 后,OnItemClickListener 在 recyclerView 中无法正常工作?

  14. 14

    Android片段翻译动画无法正常工作

  15. 15

    片段addToBackStack()和popBackStackImmediate()无法正常工作

  16. 16

    刷新ViewPager片段无法正常工作

  17. 17

    片段内的DatePickerFragment无法正常工作

  18. 18

    Rails片段缓存无法正常工作

  19. 19

    Android片段动画无法正常工作

  20. 20

    Android:片段之间的onActivityResult()无法正常工作

  21. 21

    notifyDataSetChanged 在片段上无法正常工作

  22. 22

    RecyclerView上的LinearLayoutManager的scrollToPositionWithOffset无法正常工作

  23. 23

    Android RecyclerView,回收无法正常工作

  24. 24

    嵌套的RecyclerView的notifyDataSetChanged()无法正常工作

  25. 25

    RecyclerView上的LinearLayoutManager的scrollToPositionWithOffset无法正常工作

  26. 26

    Android Recyclerview Onclicklistener无法正常工作

  27. 27

    RecyclerView 在布局更改时无法正常工作

  28. 28

    当我使用其他片段时,viewpager在lollipop 5.0中无法正常工作

  29. 29

    片段中的AsyncTask无法正常工作,并显示致命异常:AsyncTask#1

热门标签

归档