RecycleView 滑动问题

1.看adapter

package com.example.myrecycleview;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;


import java.util.List;

/**
 * Created by guoxw on 2017/6/13.
 * SongFragment 中的recycleView的adapter
 */

public class RecycleViewAdapter extends RecyclerView.Adapter<RecycleViewAdapter.ViewHolder> {

    /**
     *
     */
    List<MusicInfo> data;
    Context context;




    public RecycleViewAdapter(List<MusicInfo> data, Context context) {
        this.data = data;
        this.context = context;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view= LayoutInflater.from(context).inflate(R.layout.recycleview_item_layout,parent,false);
        final ViewHolder holder=new ViewHolder(view);

        return holder;

    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {

        MusicInfo musicInfo=data.get(position);
        holder.textView_SongName.setText(musicInfo.getMusicName());
        holder.textView_SongSinger.setText(musicInfo.getMusicSinger());
        holder.textView_SongName.setTextColor(context.getResources().getColor(R.color.colorPrimaryDark));
        holder.textView_SongSinger.setTextColor(context.getResources().getColor(R.color.colorPrimaryDark));
        if(data.get(position).isMusicPro()){
            holder.image_SongPro.setImageResource(R.mipmap.favo);
        }else{
            holder.image_SongPro.setImageResource(R.mipmap.favono);
        }

        holder.image_SongPro.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(data.get(position).isMusicPro()){
                    holder.image_SongPro.setImageResource(R.mipmap.favono);
                    data.get(position).setMusicPro(false);
                }else {
                    holder.image_SongPro.setImageResource(R.mipmap.favo);
                    data.get(position).setMusicPro(true);

                }

            }
        });
        holder.itemView.setTag(position);
    }
    @Override
    public int getItemCount() {
        return data.size();
    }

    class ViewHolder extends RecyclerView.ViewHolder{

        View viewItem;
        ImageView image_SongTitle,image_SongPro;
        TextView  textView_SongName,textView_SongSinger;
        public ViewHolder(View itemView) {
            super(itemView);
            viewItem=itemView;
            textView_SongName= (TextView) itemView.findViewById(R.id.textView_SongName);
            textView_SongSinger= (TextView) itemView.findViewById(R.id.textView_SongSinger);
            image_SongPro= (ImageView) itemView.findViewById(R.id.image_SongPro);
            image_SongTitle= (ImageView) itemView.findViewById(R.id.image_SongTitle);
        }

    }


}

 

2.Musicinfo

package com.example.myrecycleview;

/**
 * Created by guoxw on 2017/6/13.
 * songFragment界面数据对象  包含:1 歌名,2 歌手,3 收藏状态,4 图片资源(未知)
 */

public class MusicInfo {
    String musicName;
    String musicSinger;
    boolean musicPro;

    public MusicInfo(String musicName, String musicSinger) {
        this.musicName = musicName;
        this.musicSinger = musicSinger;
        musicPro=false;
    }



    public void setMusicName(String musicName) {
        this.musicName = musicName;
    }

    public void setMusicSinger(String musicSinger) {
        this.musicSinger = musicSinger;
    }

    public void setMusicPro(boolean musicPro) {
        this.musicPro = musicPro;
    }

    public String getMusicName() {
        return musicName;
    }

    public String getMusicSinger() {
        return musicSinger;
    }

    public boolean isMusicPro() {
        return musicPro;
    }



}

3.Main

package com.example.myrecycleview;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
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.ImageView;

import java.util.ArrayList;
import java.util.List;
import java.util.zip.Inflater;

public class MainActivity extends AppCompatActivity {

    RecyclerView recyclerView;
    RecycleViewAdapter recyclerViewAdapter;
    List<MusicInfo> data=new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        addMusicInfoEnglish();

        recyclerView= (RecyclerView) findViewById(R.id.recycleView);
        recyclerView.setOverScrollMode(View.OVER_SCROLL_NEVER);
        addMusicInfoEnglish();
        LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerViewAdapter=new RecycleViewAdapter(data,this);
        recyclerView.setAdapter(recyclerViewAdapter);
    }

    public  void addMusicInfoEnglish(){
        data.clear();
        data.add(new MusicInfo("My Soul","July"));
        data.add(new MusicInfo("Five Hundred Miles","Justin Timberlake"));
        data.add(new MusicInfo("Whistle","Fio Rida"));
        data.add(new MusicInfo("Seasons In The Sun","Westlife"));
        data.add(new MusicInfo("My Soul","July"));
        data.add(new MusicInfo("Five Hundred Miles","Justin Timberlake"));
        data.add(new MusicInfo("Whistle","Fio Rida"));
        data.add(new MusicInfo("Seasons In The Sun","Westlife"));
        data.add(new MusicInfo("My Soul","July"));
        data.add(new MusicInfo("Five Hundred Miles","Justin Timberlake"));
        data.add(new MusicInfo("Whistle","Fio Rida"));
        data.add(new MusicInfo("Seasons In The Sun","Westlife"));
        data.add(new MusicInfo("My Soul","July"));
        data.add(new MusicInfo("Five Hundred Miles","Justin Timberlake"));
        data.add(new MusicInfo("Whistle","Fio Rida"));
        data.add(new MusicInfo("Seasons In The Sun","Westlife"));
    }
}

item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:gravity="center_vertical"
    android:layout_height="70dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:gravity="center_vertical"
        android:orientation="horizontal">
        <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@mipmap/mp3"
        android:clickable="true"
        android:id="@+id/image_SongTitle"/>
        <LinearLayout
        android:layout_marginLeft="10dp"
        android:layout_height="50dp"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:id="@+id/layout"
        android:orientation="vertical">
        <TextView
            android:id="@+id/textView_SongName"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:paddingTop="5dp"
            android:textColor="@color/colorAccent"
            android:textSize="18sp"/>
        <TextView
            android:id="@+id/textView_SongSinger"
            android:layout_width="match_parent"
            android:layout_height="20dp"
            android:textColor="@color/colorAccent"
            android:textSize="18sp"/>
    </LinearLayout>
        <RelativeLayout
        android:layout_width="50dp"
        android:layout_height="50dp">
        <ImageView
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_centerInParent="true"
            android:id="@+id/image_SongPro"
            android:src="@mipmap/favono"/>
    </RelativeLayout>
    </LinearLayout>



</LinearLayout>

posted @ 2017-06-29 14:26  咖喱不见不散啊  阅读(419)  评论(0)    收藏  举报