欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

使用RecyclerView怎么實(shí)現(xiàn)一個(gè)縱向和橫向滾動(dòng)功能

這篇文章將為大家詳細(xì)講解有關(guān)使用RecyclerView怎么實(shí)現(xiàn)一個(gè)縱向和橫向滾動(dòng)功能,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供嘉善企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)HTML5、小程序制作等業(yè)務(wù)。10年已為嘉善眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

縱向滾動(dòng)

1、添加依賴庫(kù):

打開app/build.gradle文件,在dependencies閉包中添加如下內(nèi)容(compile 'com.android.support:recyclerview-v7:24.2.1'為添加的內(nèi)容)

dependencies {
 compile fileTree(dir: 'libs', include: ['*.jar'])
 androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
  exclude group: 'com.android.support', module: 'support-annotations'
 })
 compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
 compile 'com.android.support:recyclerview-v7:24.2.1'
 testCompile 'junit:junit:4.12'
}

添加完之后點(diǎn)擊一下Sync Now來(lái)進(jìn)行同步;

2、修改activity_main.xml中的代碼:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.example.dell.practice_recyclerview.MainActivity">
<android.support.v7.widget.RecyclerView
 android:id="@+id/id_recycler_view"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
 
</LinearLayout>

因?yàn)镽ecyclerView不是內(nèi)置在系統(tǒng)SDK中的,所以需要把完整的包路徑寫出來(lái)。

3、新建實(shí)體類,這里以Book類作為演示:

package com.example.dell.practice_recyclerview;
 
/**
 * Created by dell on 2018/6/3.
 * Created by qiyueqing on 2018/6/3.
 */
 
public class Book {
 private String name;
 private int imageId;
 
 public Book(String name, int imageId) {
  this.name = name;
  this.imageId = imageId;
 }
 
 public String getName() {
  return name;
 }
 
 public int getImageId() {
  return imageId;
 }
}

4、為L(zhǎng)istView的子項(xiàng)制定一個(gè)我們自定義的布局:

在layout目錄下新建book_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:layout_height="wrap_content">
 
 <ImageView
  android:id="@+id/id_book_image"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"/>
 <TextView
  android:id="@+id/id_book_name"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_vertical"
  android:layout_marginLeft="10dp"/>
</LinearLayout>

 5、為RecyclerView準(zhǔn)備一個(gè)適配器:

新建BookAdapter類,讓這個(gè)類繼承RecyclerView.Adapter,并將泛型指定為BookAdapter.ViewHolder;

里邊自定義一個(gè)內(nèi)部類ViewHolder,里邊的構(gòu)造參數(shù)傳入view參數(shù),這個(gè)參數(shù)就是RecyclerView的最外層布局,這樣就可以通過(guò)findViewById()來(lái)貨渠道布局中的ImageView和TextView的實(shí)例了;

BookAdapter中的構(gòu)造函數(shù),這個(gè)方法吧要展示的數(shù)據(jù)源傳進(jìn)來(lái),并賦值給一個(gè)全局變量mBookAdapter,我們后繼的所有操作都將在這個(gè)數(shù)據(jù)源的基礎(chǔ)上進(jìn)行;重寫三個(gè)方法;

package com.example.dell.practice_recyclerview;
 
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 java.util.List;
 
/**
 * Created by dell on 2018/6/3.
 * Created by qiyueqing on 2018/6/3.
 */
 
public class BookAdapter extends RecyclerView.Adapter<BookAdapter.ViewHolder>{
 
 private List<Book> mBookList;
 static class ViewHolder extends RecyclerView.ViewHolder{
  ImageView bookImage;
  TextView bookName;
  public ViewHolder(View view){
   super(view);
   bookImage=view.findViewById(R.id.id_book_image);
   bookName=view.findViewById(R.id.id_book_name);
  }
 }
 
 public BookAdapter(List<Book> bookList){
  mBookList=bookList;
 }
 @Override
 public BookAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.book_item,parent,false);
  RecyclerView.ViewHolder holder=new ViewHolder(view);
  return (ViewHolder) holder;
 }
 
 @Override
 public void onBindViewHolder(BookAdapter.ViewHolder holder, int position) {
  Book book=mBookList.get(position);
  holder.bookImage.setImageResource(book.getImageId());
  holder.bookName.setText(book.getName());
 }
 
 @Override
 public int getItemCount() {
  return mBookList.size();
 }
}

6、修改MainActivity中的代碼:

package com.example.dell.practice_recyclerview;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
 
import java.util.ArrayList;
import java.util.List;
 
public class MainActivity extends AppCompatActivity {
 
 private List<Book> bookList=new ArrayList<>();
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  initBooks();
  RecyclerView recyclerView= (RecyclerView) findViewById(R.id.id_recycler_view);
  LinearLayoutManager layoutManager=new LinearLayoutManager(this); //LinearLayoutManager中定制了可擴(kuò)展的布局排列接口,子類按照接口中的規(guī)范來(lái)實(shí)現(xiàn)就可以定制出不同排雷方式的布局了
 
  //配置布局,默認(rèn)為vertical(垂直布局),下邊這句將布局改為水平布局
  //layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
  recyclerView.setLayoutManager(layoutManager);
  BookAdapter adapter=new BookAdapter(bookList);
  recyclerView.setAdapter(adapter);
 }
 
 private void initBooks(){
  for (int i=1;i<11;i++){
   Book book=new Book("春起之苗"+i,R.drawable.icon_book);
   bookList.add(book);
  }
 }
}

此時(shí)運(yùn)行即可看到縱向的展示樣例了。

實(shí)現(xiàn)橫向滾動(dòng):

修改book_item中的代碼:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="100dp"
 android:layout_height="wrap_content">
 
 <ImageView
  android:id="@+id/id_book_image"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal"/>
 <TextView
  android:id="@+id/id_book_name"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal"
  android:layout_marginLeft="10dp"/>
</LinearLayout>

2、修改MainActivity中的代碼

package com.example.dell.practice_recyclerview;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
 
import java.util.ArrayList;
import java.util.List;
 
public class MainActivity extends AppCompatActivity {
 
 private List<Book> bookList=new ArrayList<>();
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  initBooks();
  RecyclerView recyclerView= (RecyclerView) findViewById(R.id.id_recycler_view);
  LinearLayoutManager layoutManager=new LinearLayoutManager(this); //LinearLayoutManager中定制了可擴(kuò)展的布局排列接口,子類按照接口中的規(guī)范來(lái)實(shí)現(xiàn)就可以定制出不同排雷方式的布局了
 
  //配置布局,默認(rèn)為vertical(垂直布局),下邊這句將布局改為水平布局
  layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
  recyclerView.setLayoutManager(layoutManager);
  BookAdapter adapter=new BookAdapter(bookList);
  recyclerView.setAdapter(adapter);
 }
 
 private void initBooks(){
  for (int i=1;i<11;i++){
   Book book=new Book("春起之苗"+i,R.drawable.icon_book);
   bookList.add(book);
  }
 }
}

關(guān)于使用RecyclerView怎么實(shí)現(xiàn)一個(gè)縱向和橫向滾動(dòng)功能就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

本文名稱:使用RecyclerView怎么實(shí)現(xiàn)一個(gè)縱向和橫向滾動(dòng)功能
文章地址:http://chinadenli.net/article38/ppsgsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站外貿(mào)網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈搜索引擎優(yōu)化網(wǎng)站改版做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)