Android:RecyclerView横向滑动+自定义滑动条
Android 自定义 滑动 横向 RecyclerView
2023-09-14 09:01:38 时间
网上找了好几篇RecyclerView,终于结合了一下找到能用的,特此记录一下,原理不作细究
1、安装Recyciler View依赖
implementation 'com.makeramen:roundedimageview:2.3.0'
2、创建实体类
public class News {
public String title; // 标题
public String content; //内容
}
3、界面布局文件
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
style="@style/recy_horizontal_style"
/>
</LinearLayout>
4、每个item
使用自己的内容
5、核心方法
package cn.edu.cdut.huaxue;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class jiemian3 extends AppCompatActivity {
RecyclerView mRecyclerView;
MyAdapter mMyAdapter ;
List<News> mNewsList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jiemian3);
mRecyclerView = findViewById(R.id.recyclerview);
// 构造一些数据
for (int i = 0; i < 50; i++) {
News news = new News();
news.title = "标题" + i;
news.content = "内容" + i;
mNewsList.add(news);
}
mMyAdapter = new MyAdapter();
mRecyclerView.setAdapter(mMyAdapter);
LinearLayoutManager layoutManager = new LinearLayoutManager(jiemian3.this,LinearLayoutManager.HORIZONTAL, false); //在此处修改水平or垂直
mRecyclerView.setLayoutManager(layoutManager);
}
class MyAdapter extends RecyclerView.Adapter<MyViewHoder> {
@NonNull
@Override
public MyViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = View.inflate(jiemian3.this, R.layout.item_list, null);
MyViewHoder myViewHoder = new MyViewHoder(view);
return myViewHoder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHoder holder, int position) {
News news = mNewsList.get(position);
holder.mTitleTv.setText(news.title);
holder.mTitleContent.setText(news.content);
}
@Override
public int getItemCount() {
return mNewsList.size();
}
}
class MyViewHoder extends RecyclerView.ViewHolder {
TextView mTitleTv;
TextView mTitleContent;
public MyViewHoder(@NonNull View itemView) {
super(itemView);
mTitleTv = itemView.findViewById(R.id.textView);
mTitleContent = itemView.findViewById(R.id.textView2);
}
}
}
6、滚动条美化
<style name="recy_horizontal_style">
<item name="android:scrollbarSize">5dp</item>
<item name="android:scrollbars">horizontal</item>
<item name="android:scrollbarThumbHorizontal">@drawable/recy_vertical_scrollbar</item>
<item name="android:scrollbarTrackHorizontal">@drawable/recy_vertical_scrollbar_bg</item>
</style>
效果:
相关文章
- android 浏览器 开发,Android 浏览器的开发实例分享
- android sdk manager安装,Android SDK Manager安装过程
- android-短信验证功能,Android实现获取短信验证码的功能以及自定义GUI短信验证详解…
- iphone4装android,iPhone4可安装Android实现双系统启动.pdf
- android toast 自定义时间,Android 自定义 Toast 显示时间「建议收藏」
- Android preference_android studio preview
- Android修改字体_android设置字体样式
- 【Android自定义控件】不用ScrollView实现上下两屏滑动
- android studio logcat 打印不出信息
- Android进程间通信(四):进程间通信的方式之AIDL
- 【Rust日报】2023-02-04 Android的Rust新课程:Comprehensive Rust
- 26款优秀的Android逆向工程工具
- 【Android FFMPEG 开发】FFMPEG 获取编解码器 ( 获取编解码参数 | 查找编解码器 | 获取编解码器上下文 | 设置上下文参数 | 打开编解码器 )
- 【Android 内存优化】自定义组件长图组件 ( 自定义组件构造方法 )
- 【Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )
- 【错误记录】Android 编译时技术报错 ( 注解处理器 process 方法多次调用问题 )
- 【Android FFMPEG 开发】Android 中使用 FFMPEG 将 PCM 音频采样转为 MP3 格式
- 【错误记录】Android 应用安全检测漏洞修复 ( StrandHogg 漏洞 | 设置 Activity 组件 android:taskAffinity=““ )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑫ ( Gradle 任务的输出和输出 | @Optional 注解 | UP-TO-DATE 避免重复执行任务 )
- [图]Android 12 Beta 3发布:原生支持长图截屏 利用前摄改进自动旋转
- 施密特称Android比iPhone更安全 遭听众嘲笑
- 安全框架 ASM 有望清洗 Android 安全乱局
- android开发教程之日历项目实践(三)
- android自定义Android菜单背景的代码
- 为Android应用增加渠道信息自动化不同渠道的打包过程的使用详解
- android开发教程之自定义属性用法详解