最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android  RecyclerView詳解及簡單實(shí)例

 更新時(shí)間:2017年01月10日 08:40:42   投稿:lqh  
這篇文章主要介紹了Android RecyclerView詳解及簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下

Android  RecyclerView

小白今天第一次接觸RecyclerView,前輩大神告訴我這是一個(gè)很神奇的控件,一看就是一整天。

RecyclerView中有規(guī)定好的方法去顯示列表,圖片甚至視頻。還帶有刪除新建某一列表的方法。相對(duì)于ListView這個(gè)
RecyclerView控件就更加牛了。

明白的大神看一眼就懂,小白可以自己照源碼敲一遍看看效果。這段程序是把A-Z按列排列下來:

package com.example.osserver.recycler;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.*;
import android.support.v7.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends ActionBarActivity {

  private RecyclerView mRecyclerView;
  private List<String> mDatas;
  private HomeAdapter mAdapter;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initData();
    mRecyclerView = (RecyclerView)findViewById(R.id.id_recyclerview);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    mRecyclerView.setAdapter(mAdapter = new HomeAdapter());
    mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.HORIZONTAL_LIST));

  }

  private void initData() {
        mDatas = new ArrayList<String>();
        for (int i ='A';i<='Z';i++){
          mDatas.add(""+(char)i);
    }
  }
class HomeAdapter extends RecyclerView.Adapter<MyViewHolder>
{
  @Override
  public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    MyViewHolder holder = new MyViewHolder(LayoutInflater.from(MainActivity.this).inflate(R.layout.item,parent,false));
    return holder;
  }

  @Override
  public void onBindViewHolder(MyViewHolder holder, int position) {
    holder.tv.setText(mDatas.get(position));

  }

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

  class MyViewHolder extends RecyclerView.ViewHolder
  {
    TextView tv;
    public MyViewHolder(View view) {
      super(view);
      tv = (TextView)view.findViewById(R.id.id_num);
    }
  }

}

接下來就是列表的潤色部分:

今天我也只是進(jìn)行到了這一步,踩了好多坑。

package com.zhy.sample.demo_recyclerview;

/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * limitations under the License.
 */

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.State;
import android.util.Log;
import android.view.View;


/**
 * This class is from the v7 samples of the Android SDK. It's not by me!
 * <p/>
 * See the license above for details.
 */
public class DividerItemDecoration extends RecyclerView.ItemDecoration {

  private static final int[] ATTRS = new int[]{
      android.R.attr.listDivider
  };

  public static final int HORIZONTAL_LIST = LinearLayoutManager.HORIZONTAL;

  public static final int VERTICAL_LIST = LinearLayoutManager.VERTICAL;

  private Drawable mDivider;

  private int mOrientation;

  public DividerItemDecoration(Context context, int orientation) {
    final TypedArray a = context.obtainStyledAttributes(ATTRS);
    mDivider = a.getDrawable(0);
    a.recycle();
    setOrientation(orientation);
  }

  public void setOrientation(int orientation) {
    if (orientation != HORIZONTAL_LIST && orientation != VERTICAL_LIST) {
      throw new IllegalArgumentException("invalid orientation");
    }
    mOrientation = orientation;
  }

  @Override
  public void onDraw(Canvas c, RecyclerView parent) {
    Log.v("recyclerview - itemdecoration", "onDraw()");

    if (mOrientation == VERTICAL_LIST) {
      drawVertical(c, parent);
    } else {
      drawHorizontal(c, parent);
    }

  }


  public void drawVertical(Canvas c, RecyclerView parent) {
    final int left = parent.getPaddingLeft();
    final int right = parent.getWidth() - parent.getPaddingRight();

    final int childCount = parent.getChildCount();
    for (int i = 0; i < childCount; i++) {
      final View child = parent.getChildAt(i);
      android.support.v7.widget.RecyclerView v = new android.support.v7.widget.RecyclerView(parent.getContext());
      final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child
          .getLayoutParams();
      final int top = child.getBottom() + params.bottomMargin;
      final int bottom = top + mDivider.getIntrinsicHeight();
      mDivider.setBounds(left, top, right, bottom);
      mDivider.draw(c);
    }
  }

  public void drawHorizontal(Canvas c, RecyclerView parent) {
    final int top = parent.getPaddingTop();
    final int bottom = parent.getHeight() - parent.getPaddingBottom();

    final int childCount = parent.getChildCount();
    for (int i = 0; i < childCount; i++) {
      final View child = parent.getChildAt(i);
      final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child
          .getLayoutParams();
      final int left = child.getRight() + params.rightMargin;
      final int right = left + mDivider.getIntrinsicHeight();
      mDivider.setBounds(left, top, right, bottom);
      mDivider.draw(c);
    }
  }

  @Override
  public void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent) {
    if (mOrientation == VERTICAL_LIST) {
      outRect.set(0, 0, 0, mDivider.getIntrinsicHeight());
    } else {
      outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0);
    }
  }
}

不能添加圖片,那就寫這些好了。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Android自定義圓形倒計(jì)時(shí)進(jìn)度條

    Android自定義圓形倒計(jì)時(shí)進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了Android自定義圓形倒計(jì)時(shí)進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Android數(shù)據(jù)持久化之ContentProvider機(jī)制詳解

    Android數(shù)據(jù)持久化之ContentProvider機(jī)制詳解

    這篇文章主要介紹了Android數(shù)據(jù)持久化之ContentProvider機(jī)制,結(jié)合實(shí)例形式分析了ContentProvider機(jī)制的原理與相關(guān)使用技巧,需要的朋友可以參考下
    2017-05-05
  • Android中數(shù)據(jù)解析的五種方式

    Android中數(shù)據(jù)解析的五種方式

    今天小編就為大家分享一篇關(guān)于Android中數(shù)據(jù)解析的五種方式,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Kotlin?Dispatchers協(xié)程調(diào)度器源碼深入分析

    Kotlin?Dispatchers協(xié)程調(diào)度器源碼深入分析

    Kotlin協(xié)程不是什么空中閣樓,Kotlin源代碼會(huì)被編譯成class字節(jié)碼文件,最終會(huì)運(yùn)行到虛擬機(jī)中。所以從本質(zhì)上講,Kotlin和Java是類似的,都是可以編譯產(chǎn)生class的語言,但最終還是會(huì)受到虛擬機(jī)的限制,它們的代碼最終會(huì)在虛擬機(jī)上的某個(gè)線程上被執(zhí)行
    2022-11-11
  • Android中使用Bitmap類將矩形圖片轉(zhuǎn)為圓形的方法

    Android中使用Bitmap類將矩形圖片轉(zhuǎn)為圓形的方法

    這篇文章主要介紹了Android中使用Bitmap類將矩形圖片轉(zhuǎn)為圓形的方法,同時(shí)文中也介紹了如何利用矩形直接來畫圓角,需要的朋友可以參考下
    2016-03-03
  • Android編程自定義搜索框?qū)崿F(xiàn)方法【附demo源碼下載】

    Android編程自定義搜索框?qū)崿F(xiàn)方法【附demo源碼下載】

    這篇文章主要介紹了Android編程自定義搜索框?qū)崿F(xiàn)方法,涉及Android界面布局、數(shù)據(jù)加載、事件響應(yīng)等相關(guān)操作技巧,并附帶完整demo源碼供讀者下載參考,需要的朋友可以參考下
    2017-12-12
  • Android中Handler與Message的簡單實(shí)例

    Android中Handler與Message的簡單實(shí)例

    這篇文章主要介紹了Android中Handler與Message的簡單實(shí)例的相關(guān)資料,這里提供實(shí)例來說明線程Handler與message 的結(jié)合使用,需要的朋友可以參考下
    2017-08-08
  • android imageview圖片居中技巧應(yīng)用

    android imageview圖片居中技巧應(yīng)用

    做UI布局,尤其是遇到比較復(fù)雜的多重LinearLayout嵌套,常常會(huì)被一些比較小的問題困擾上半天,可是無論怎樣設(shè)置layout_gravity屬性,都無法達(dá)到效果
    2012-11-11
  • Android調(diào)用密碼鎖屏校驗(yàn)的流程代碼詳解

    Android調(diào)用密碼鎖屏校驗(yàn)的流程代碼詳解

    這篇文章主要介紹了Android調(diào)用密碼鎖屏校驗(yàn)的流程代碼,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Android觸屏事件和MotionEvent詳解

    Android觸屏事件和MotionEvent詳解

    這篇文章主要介紹了Android觸屏事件和MotionEvent詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10

最新評(píng)論

大厂| 门源| 仪陇县| 津市市| 梁平县| 达孜县| 东源县| 昌宁县| 义马市| 宝丰县| 连江县| 胶南市| 峡江县| 永平县| 泗水县| 绥棱县| 金塔县| 贡觉县| 通城县| 巴彦县| 苗栗市| 镇宁| 衡南县| 清流县| 台东县| 鄢陵县| 开封县| 志丹县| 仁寿县| 奈曼旗| 蒲城县| 马山县| 张北县| 乐至县| 鄯善县| 金昌市| 宜昌市| 牟定县| 松桃| 宿松县| 饶平县|