-
recycler
2019-09-05 21:36:01Recycler主界面对应的布局视频播放界面对应的布局自定义接口实现接口回调自定义多布局适配器 主界面 package com.example.ap; import android.content.Intent; import android.support.v7.app.AppCompatActivity; ...主界面
package com.example.ap; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import com.example.ap.adapter.MyRecyclerAdapter; import com.example.ap.bean.MyBean; import com.example.ap.listener.MyListener; import com.google.gson.Gson; import com.lzy.okgo.OkGo; import com.lzy.okgo.callback.StringCallback; import com.lzy.okgo.model.Response; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private RecyclerView rv; private MyRecyclerAdapter recyclerAdapter; private List<MyBean.DataBean> list; private MyListener listener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rv=findViewById(R.id.main_recyclerView); initView(); initData(); } private void initData() { OkGo.<String>get("https://www.apiopen.top/satinApi?type=1&page=3") .execute(new StringCallback() { @Override public void onSuccess(Response<String> response) { MyBean myBean = new Gson().fromJson(response.body(), MyBean.class); list.addAll(myBean.getData()); recyclerAdapter.notifyDataSetChanged(); recyclerAdapter.setListener(new MyListener() { @Override public void message(int position) { Intent it = new Intent(MainActivity.this, PlayActivity.class); it.putExtra("url",list.get(position).getVideouri()); startActivity(it); } }); } }); } private void initView() { list=new ArrayList<>(); recyclerAdapter=new MyRecyclerAdapter(this,list); rv.setAdapter(recyclerAdapter); rv.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL)); } }
对应的布局
<?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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/main_recyclerView" > </android.support.v7.widget.RecyclerView> </RelativeLayout>
视频播放界面
package com.example.ap; import android.media.MediaPlayer; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.SeekBar; import android.widget.VideoView; import java.util.Timer; import java.util.TimerTask; public class PlayActivity extends AppCompatActivity { private VideoView videoView; private SeekBar sb; private int duration; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_play); videoView=findViewById(R.id.play_videoView); sb=findViewById(R.id.play_seekBar); final String video = getIntent().getStringExtra("url"); videoView.setVideoPath(video); videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { videoView.start(); duration= videoView.getDuration(); sb.setMax(duration); } }); sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if( fromUser){ videoView.seekTo(progress); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); final Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { if( videoView.getCurrentPosition()==videoView.getDuration()){ timer.cancel(); }else{ sb.setProgress(videoView.getCurrentPosition()); } } },0,300); } }
对应的布局
<?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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".PlayActivity"> <VideoView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:id="@+id/play_videoView" /> <SeekBar android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:id="@+id/play_seekBar" /> </RelativeLayout>
自定义接口实现接口回调
package com.example.ap.listener; public interface MyListener { void message(int position); }
自定义多布局适配器
package com.example.ap.adapter; import android.content.Context; import android.support.annotation.NonNull; 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 com.bumptech.glide.Glide; import com.example.ap.R; import com.example.ap.bean.MyBean; import com.example.ap.listener.MyListener; import java.util.List; public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter.MyViewHolder>{ private Context context; private List<MyBean.DataBean> list; private MyListener listener; public void setListener(MyListener listener) { this.listener = listener; } public MyRecyclerAdapter(Context context, List<MyBean.DataBean> list) { this.context = context; this.list = list; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.my_layout,viewGroup,false)); } @Override public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, final int i) { Glide.with(context).load(list.get(i).getImage1()).into(myViewHolder.img); myViewHolder.text.setText(list.get(i).getText()); myViewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { listener.message(i); } }); } @Override public int getItemCount() { return list.size(); } class MyViewHolder extends RecyclerView.ViewHolder{ private TextView text; private ImageView img; public MyViewHolder(@NonNull View itemView) { super(itemView); text=itemView.findViewById(R.id.layout_text); img=itemView.findViewById(R.id.layout_image); } } }
-
RECYCLER
2008-08-26 22:48:00它是一个隐藏的系统文件,要想看到它必须在“文件夹选项”中进行...这样我们就可以看见RECYCLER文件夹了。以下信息摘自网络:RECYCLER的英文直译是“回收再利用”,它是windows操作系统中存放被删除文件的文件夹之一。它是一个隐藏的系统文件,要想看到它必须在“文件夹选项”中进行相关的设置,
操作步骤如图1-2:(图1)
(图2)
将“隐藏受保护的操作系统文件(推荐)”勾去掉,“显示所有文件和文件夹”单选钮选中。这样我们就可以看见RECYCLER文件夹了。
以下信息摘自网络:
RECYCLER的英文直译是“回收再利用”,它是windows操作系统中存放被删除文件的文件夹之一。
在Windows的NT架构的系统中,即Windows NT/2000/XP/2003,会为系统中的每位用户创建各自的回收站文件夹,
如果分区文件系统是NTFS,则会保存在Recycler这个文件夹里,而不是Recycled文件夹,因此不用担心是病毒文件夹,
它分别以每个用户的SID(用户安全标识符,用来代表用户,任何两个用户的标识符都不一样)做名字,
就类似于“S-1-5-21-1364623040-634879670-1883500744-500”这样的文件名。这个文件夹是隐藏的受保护的系统文件夹,
因此是不能删除的,即便删除了,它也会自动再创建,如果里面有病毒,把里面的文件删了就行,工具-文件夹选项-查看,
把“隐藏受保护的操作系统文件”的勾打上,再选择“显示隐藏的文件夹和文件”,确定后就可以看见它了。
-
Recycler
2017-07-10 16:42:28RecyclerView 在v7包下 compile 'com.android.support:recyclerview-v7:25.3.1' compile 'com.android.support:cardview-v7:25.3.1' 需要导入的依赖 布局 android.support.v4.widget.SwipeRefreshLayRecyclerView 在v7包下 compile 'com.android.support:recyclerview-v7:25.3.1' compile 'com.android.support:cardview-v7:25.3.1' 需要导入的依赖 布局 <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/Swipe" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/Recycler" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v7.widget.RecyclerView> </android.support.v4.widget.SwipeRefreshLayout> 这样可以系统自带下拉刷新 http://blog.csdn.net/u012124438/article/details/53495951 适配器继承这个类 RecyclerView.Adapter 代码里 线性布局和相对布局 LinearLayoutManager linear = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); GridLayoutManager grid = new GridLayoutManager(this, 3); 布局管理器 recycler.setLayoutManager(grid); 设置进度条颜色 swipe.setColorSchemeColors(Color.RED, Color.BLUE, Color.YELLOW); 添加分隔线 recycler.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL)); 自定义View下划线的写法 onDraw方法 onDrawOver方法——是在数据上面 自定义下划线的类自定义的写法 public class MyDivider extends RecyclerView.ItemDecoration { private Context pContext; private final int widthPixels; public MyDivider(Context context) { this.pContext = context; //获取手机屏幕的整个宽度 DisplayMetrics bm = new DisplayMetrics(); ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(bm); widthPixels = bm.widthPixels; } @Override public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { super.onDraw(c, parent, state); //画笔 Paint paint = new Paint(); paint.setColor(Color.BLACK); // c.drawCircle(300, 400, 100, paint); // c.clipRect(0,100,1000,110); // c.drawRect(rectF,paint); //找到总的Item的条目数 int childCount = parent.getChildCount(); for (int i = 0; i < childCount; i++) { //获取每一个item控件视图 View childAt = parent.getChildAt(i); //获取控件的左位置和下位置 int right = childAt.getRight(); int top = childAt.getTop(); int left = childAt.getLeft(); int bottom = childAt.getBottom(); //矩形图片 RectF rectF = new RectF(left, bottom, widthPixels, bottom + 6); c.drawRect(rectF, paint); } } //在上面 @Override public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) { super.onDrawOver(c, parent, state); } } --------------------------------------------------- LayoutManager: 管理RecyclerView的结构. Adapter: 处理每个Item的显示. ItemDecoration: 添加每个Item的装饰. ItemAnimator: 负责添加\移除\重排序时的动画效果. class MyViewHolder extends RecyclerView.ViewHolder { private final ImageView image; private final TextView textview; public MyViewHolder(View itemView) { super(itemView); image = (ImageView) itemView.findViewById(R.id.item_image); textview = (TextView) itemView.findViewById(R.id.item_text); } public RecycleAdapter(Context context) { this.mcontext = context; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View inflate = View.inflate(mcontext, R.layout.item, null); MyViewHolder holder = new MyViewHolder(inflate); return holder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { MyViewHolder vh = (MyViewHolder) holder; vh.textview.setText(list.get(position).getTitle()); mhomePresent.getImage(vh.image,list.get(position).getThumbnail_pic_s()); } @Override public int getItemCount() { return list.size(); } public void setDatas(HomeBean homeBean) { if (homeBean != null) { this.list.addAll(homeBean.getResult().getData()); } } } } package com.baway.myrecycleview.view.activity; import android.graphics.Color; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import com.baway.myrecycleview.R; import com.baway.myrecycleview.mondel.HomeBean; import com.baway.myrecycleview.present.HomePresent; import com.baway.myrecycleview.present.MyDivider; import com.baway.myrecycleview.view.adapter.RecycleAdapter; import com.baway.myrecycleview.view.iview.HomeView; public class MainActivity extends AppCompatActivity implements HomeView<HomeBean>, SwipeRefreshLayout.OnRefreshListener { private SwipeRefreshLayout swipeRefreshLayout; private RecyclerView recyclerView; private HomePresent homePresent; private RecycleAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); } private void initData() { swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh_layout); recyclerView = (RecyclerView) findViewById(R.id.recycler_view); homePresent = new HomePresent(); homePresent.attachView(this); // LinearLayoutManager manager = new LinearLayoutManager(this); GridLayoutManager manager = new GridLayoutManager(this, 3); // StaggeredGridLayoutManager manager=new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.HORIZONTAL); recyclerView.setLayoutManager(manager); swipeRefreshLayout.setColorSchemeColors(Color.RED, Color.GREEN); adapter = new RecycleAdapter(MainActivity.this); adapter.setpresent(homePresent); recyclerView.setAdapter(adapter); recyclerView.addItemDecoration(new MyDivider(this)); recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager(); int itemCount = layoutManager.getItemCount(); int lastVisibleItemPosition = layoutManager.findLastVisibleItemPosition(); if (lastVisibleItemPosition + 1 == itemCount) { swipeRefreshLayout.setRefreshing(true); } } }); //添加分割线 recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); homePresent.setData(HomeBean.class); } @Override public void callBack(HomeBean homeBean) { adapter.setDatas(homeBean); adapter.notifyDataSetChanged(); } @Override public void onRefresh() { swipeRefreshLayout.setRefreshing(false); } }
-
Recycler View
2020-11-25 10:36:07Recycler View 文章目录Recycler View前言一、Recycler View是什么?二、使用步骤1.选择一个你想要放的tab里总结 前言 提示:上一个博客,我已经搭建了一个基础的类似微信的几个页面,并实现了页面的跳转,接下来...Recycler View
前言
提示:上一个博客,我已经搭建了一个基础的类似微信的几个页面,并实现了页面的跳转,接下来是对每个页面的填充。
一、Recycler View是什么?
Recycler View 在我感觉上,他是一个强大的布局管理,可以把特定的数据集按照你定义的组合进行展开。(不是很专业,专业的介绍可以百度)
二、使用步骤
1.选择一个你想要放的tab里
既然他是按照一定规则去展开页面的,就需要去定义一个每一个item的模板
新建一个xml文件,在其中有三个组件,一个imagview,两个textview
现在就可以去你xml对应的java文件中,控制我们变量。
这里需要初始化Adapter,需要去编写这个类,将定义的mlist数据集传递进去
那就先将数据集的类型定义
编写了一个People类,用于将数组List的数据分类整理
通过初始化数据方法分类
在重写的Adapter方法中有五个函数,其中有三个重写的方法
一个构造方法 --拿到上下文和数据
onCreateViewHolder --通过上下文指定模板
onBindViewHolder --通过position来渲染模板(主要就是设置数据)
getItemCount --获取渲染个数(指定为数据集的大小)
LinearViewHolder – 获取模板的组件,用于渲染
通过LinearViewHolder拿到组件
这里利用holder.xxx来赋值,其中图片会用到Glide组件,一个图片的库
想要使用Glide就要引入依赖和支持
还要允许网络连接
最后的结果
Glide: https://www.baidu.com/link?url=2W4Lg1C22HfWaplXaijDt3R6p8BWZDQAKCp5NXTwcNXVlO7sIfekX2enuxOK8wFG&wd=&eqid=8ee3096d0005aea7000000065fbdbe1a
代码仓库:https://gitee.com/polar_night/android总结
其中大部分都是自己的认识和见解,如果有什么错误,还请指正。 -
Recycler view item
2020-11-22 21:32:16<div><p>Can this be used as a recycler view item. I have a list of items in my recycler view and I want to make each one of the items swappable not like a dark deck, if you know what I mean. Regards.... -
RECYCLER病毒清除
2011-08-04 17:04:37RECYCLER病毒清除 RECYCLER病毒清除 RECYCLER病毒清除 RECYCLER病毒清除 -
gesture-recycler
2019-01-14 17:11:02gesture-recycler 项目地址:thesurix/gesture-recycler 简介:This library provides swipe & drag and drop support for RecyclerView. 更多:作者 提 Bug 标签: This library ... -
清除Recycler病毒
2013-05-05 10:34:15清除Recycler病毒(清除“Recycler”病毒文件方法如果你的每个盘的根目录下都有“Recycler”这个隐藏文件) -
recycler清除病毒
2013-09-01 16:22:01清除“Recycler”病毒文件方法如果你的每个盘的根目录下都有“Recycler”这个隐藏文件 那么恭喜你中毒了 一般的杀毒软件根本就发现不了 你可能会觉得这不是回收站的文件名吗 再次恭喜你 你又错了 我来告诉你回收站... -
Nested Recycler View question
2021-01-06 21:27:18<p>My question is regarding a nested Recycler view. Basically I have a PagedList of UserDisplay that is coming from my Mosby MVI Presenter composed with two objects: <pre><code>Kotlin data class ... -
Netty4 Recycler
2019-05-22 09:38:35Recycler Recycler是Netty经常使用的对象池抽象类,通过重用对象,能够避免频繁创建对象和销毁对象带来的损耗。 1. Recycler 抽象类介绍 1. 使用了FastThreadLocal // 每个线程都有自己的stack private final... -
Fix recycler view expanse
2020-12-07 05:52:29s used in recycler view. <p>Notice : A recycler view isn't recycled if you set a <code>holder.setIsRecyclable(false);</code>. <p>Fix #71 Fix #76</p><p>该提问来源于开源项目:AAkira/... -
Recycler only recycles steel
2021-01-12 02:08:23<div><p>The Steel Compactor (t_recycler) only recycles steel items into steel materials (steel_lump, sheet_metal, steel_chunk, & scrap) currently. <p>Now with the addition of the recycle center in... -
安卓 recycler view
2020-06-10 12:01:45recycler view recycler view通常用于展示一组数据。比如音乐播放列表里,这个页面需要展示一组歌曲的信息。每一行展示一首歌,里面可能有一张图片放专辑海报,有歌曲名,有歌手姓名。由于歌曲很多,手机屏幕装不下... -
Netty Recycler源码解读
2018-12-12 11:23:00Recycler是一个轻量级的对象缓存池,用来实现对象的复用。下面是使用Recycler的一个简单实例: import io.netty.util.Recycler; public class RecycleTest { private static final Recycler<User> ... -
Set a more reasonable Recycler Capacity
2020-11-24 18:34:31<div><p>Default Netty Recycler capacity is 262k~, resulting in major memory consumption over long runtimes that will never free. <p>Potentially a netty leak, more info here: ...<p>after 2 weeks of uptime... -
Dragging outside the recycler view
2021-01-12 09:27:29t figure out how to enable dragging items outside the recycler view. I have tried setting android:clipChildren="false" android:clipToPadding="false" in the parent view, but... -
Prevent Animation recycler view scroll
2021-01-10 11:16:36<div><p>This librery working fine. but i need to prevent animation from adapter item when recycler view scoll. </p><p>该提问来源于开源项目:robinhood/ticker</p></div> -
kotlin recycler_view must not be null
2020-01-17 18:29:12recycler_view must not be null 解析 找不到recycler_view? override fun initView() { recycler_view.layoutManager = LinearLayoutManager(mContext) } 就上面这一行很简单的代码,居然提示找不到recycler_... -
Remove recycler and its usage
2020-11-25 17:11:45<div><ul><li>The memory usage due to recycler was high, and incrementing with time.</li></ul>该提问来源于开源项目:solana-labs/solana</p></div> -
Calendroid: initial recycler view
2020-12-08 20:02:32<p>This is the recycler view that will be used to draw the calendar events. Its custom drawing handles the calendar hour lines and hour labels. It still doesn't draw the hour labels while in edit ... -
netty Recycler(一)
2020-11-22 10:51:33之所以研究netty Recycler,是因为生产环境中遇到了由其引发的堆内存占用率过高的现象。 实验所用源码 回收对象分为两种:同一线程 不同线程。 同一线程 在同一线程中,对象回收至Recycler$Stack中 实验代码 package... -
Recycler View 介绍
2017-12-13 17:07:40Recycler View RecyclerView可以通过导入support-v7对其进行使用。 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListView、GridView。 那么有了ListView... -
Recycler view not loading second time
2021-01-10 18:51:28What happened: in an activity, there is a recycler view that displays some items also using firestore recycler adapter and when I click on an item I go to an item details activity that contains some ... -
add Recycler to compliment Supplier
2020-12-08 23:43:54<p>I recommend the name <code>Recycler, although you can use whatever name you think is fitting. <p>use case: <pre><code> extern crate lifeguard; use lifeguard::*; fn main() { let pool : Pool<... -
Reload expandable-recycler-view
2020-11-29 19:07:37I implement this expandable-recycler-view for my project, but I don't know how to reload data for it. <p>You can write a tutorial or sample code? <p>Thank so much!</p><p>该提问来源于开源项目ÿ... -
Multiple crashes in recycler views
2020-12-08 20:02:39android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline RecyclerView.java:5923 android.support.v7.widget.RecyclerView$Recycler.getViewForPosition RecyclerView.java:5858 ... -
Android代码-expandable-recycler-view
2019-08-06 12:19:24Deprecated This library has been deprecated. Feature development and bug fixing is no longer planned. Feel free to fork for ... Thoughbot's expandable-recycler-view offers similar api and functionality. -
Replacing the ListView with Recycler View.
2020-12-08 22:54:04<div><p><strong>Recycler view is a part of android support library. So a new library has been added</strong></p> <p>I have tried to make the recycler view look exactly as the list view. Here's a ...
-
计算机网络基础
-
信息系统项目管理师考前必做170题.pdf
-
资料下载 | 2020年中国FPGA芯片行业研究报告
-
jquery如何使用滚动条监听事件
-
css字体保持在一行不换行的实现方法
-
跟我练内测小分队学习礼包
-
桌面版待办事项升级版(Tkinter入门)
-
淘宝面试题(Volatile)
-
云计算基础-Linux系统管理员
-
Day16-2021.1.24
-
Python入门到项目直通车
-
httpclient支持jar打包
-
黑龙江农垦科技职业学院喜迎寒假多校联赛2(快乐ak场)——部分题解
-
【数据分析-随到随学】互联网行业业务指标及行业数
-
Exchanger
-
Betterwmf CAD 2 Word .rar
-
电商设计专业思维
-
信息系统项目管理师考前必做650题.pdf
-
【数据分析-随到随学】Spark理论及实战
-
PHP7.2源码安装