首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

要按宽度水平滚动的RecyclerView

要按宽度水平滚动的RecyclerView,你需要将RecyclerView的布局方向设置为水平,并且设置适当的布局管理器。以下是如何实现它的步骤:

1. 设置布局方向为水平

在你的布局文件中(例如 activity_main.xml),确保RecyclerView的布局方向是水平的。你可以通过设置 layout_widthlayout_height 来控制RecyclerView的大小。

代码语言:javascript
复制
<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scrollbars="horizontal" />

2. 设置水平布局管理器

在你的Activity或Fragment中,设置RecyclerView的布局管理器为 LinearLayoutManager,并将其方向设置为水平。

代码语言:javascript
复制
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

public class MainActivity extends AppCompatActivity {

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

        RecyclerView recyclerView = findViewById(R.id.recyclerView);

        // 设置布局管理器为水平方向
        LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
        recyclerView.setLayoutManager(layoutManager);

        // 设置适配器
        MyAdapter adapter = new MyAdapter(/* 你的数据 */);
        recyclerView.setAdapter(adapter);
    }
}

3. 创建适配器

创建一个适配器类来管理RecyclerView的项。

代码语言:javascript
复制
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;

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

    private List<String> data;

    public MyAdapter(List<String> data) {
        this.data = data;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        holder.textView.setText(data.get(position));
    }

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

    public static class ViewHolder extends RecyclerView.ViewHolder {
        TextView textView;

        public ViewHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.textView);
        }
    }
}

4. 创建项布局

创建一个布局文件 item_layout.xml 来定义RecyclerView中每个项的布局。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Item" />
</LinearLayout>

5. 运行应用

现在,当你运行应用时,RecyclerView应该会按宽度水平滚动。

通过这些步骤,你可以轻松地实现一个按宽度水平滚动的RecyclerView。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 恢复 RecyclerView 滚动位置

    您可能在开发过程中遇到过这种情况,在 Activity/Fragment 被重新创建后,RecyclerView 丢失了它之前保有的滚动位置信息。...通常这种情况发生原因是由于异步加载 Adapter 数据,且数据在 RecyclerView 需要进行布局时候尚未加载完成,导致 RecyclerView 无法恢复到之前滚动位置。...从  1.2.0-alpha02 版本开始,Jetpack RecyclerView 提供了一个新 API,可以让 Adapter  在数据加载完成之前阻塞布局行为 ,从而避免丢失滚动位置信息。...接下来我们会介绍如何使用这个新 API,以及它工作原理。 恢复至原有滚动位置 有好几种方法可以用来恢复 RecyclerView 至正确滚动位置,您可能已经在实际项目中用到了这些方法。...() > 0) 时候,才恢复 RecyclerView 状态。

    1.5K10

    浅谈Android RecyclerView UI滚动控件示例

    还有就是只能够纵向滚动,如果要想实现横向移动,用 ListView 是做不到RecyclerView 可以说是一个增强版 ListView 。...RecyclerView 现在可是官方推荐使用滚动控件哦O(∩_∩)O~ 1 基本用法 RecyclerView 也是新增控件,所以必须先在项目的 build.gradle 中添加相应依赖库才能使用...onBindViewHolder – 对 RecyclerView 子项数据进行赋值,这个方法会在每个子项被滚动到屏幕内时进行。...recyclerView 示例 我们使用了 recyclerView 创建出了 ListView 效果,而且代码逻辑更清晰咯。 2 横向滚动 现在让我们把这些猫变为 “横向滚动” 吧。...横向排列 我们可以在水平方向上滑动来查看屏幕外 “猫” 啦。

    86410

    从0系统学Android--3.6 RecyclerView

    而且 ListView 扩展性不好,只能实现数据纵向滚动效果,如果想要实现横向滚动的话就做不到了。 为此 Android 提供了更为强大控件--RecyclerView。...3.6.2 实现横向滚动和瀑布流布局 Listview 可扩展性不好,只能实现纵向滚动,如果想要横向滚动的话 ListView 就做不到了。下面用 RecyclerView 来实现横向滚动。...首先对子项布局进行修改一下,目前布局是水平排列,不适合水平滚动。 <?xml version="1.0" encoding="utf-8"?...,子类只要按照接口规范来实现,就可以制定各种不同方式排列布局了。...需要注意: 在使用瀑布布局管理器时候,子项目的布局宽度是由分列数来决定

    84320

    有意思水平横向溢出滚动

    来看看这么一种情况: 我们有一个垂直方向溢出滚动容器,以及一个水平方向溢出滚动容器: 如果使用是非触控板(大部分用户没有触控板),而是使用鼠标来进行操作,会发现,这两个容器中,只有垂直方向溢出滚动容器...,是可以响应鼠标滚轮: 垂直方向溢出滚动容器,正常响应鼠标滚轮,可滚动内容 水平方向溢出滚动容器,不会响应鼠标滚轮,不可滚动内容 那么,这里可能就是一个用户痛点。...那是必须,本文就将介绍一种可能可行技巧,在特定场景下在水平方向溢出滚动容器,依然可以用鼠标滚轮进行滚动。 旋转大法 是的,既然只有垂直方向溢出,才能响应滚轮操作。那我们不妨从这个角度入手。...要想变成水平方向,我们只需要给容器旋转 90° 不就行了吗?...,就变成了水平容器,图中鼠标没有在滚动条上容器运动就是通过滚轮实现

    2.5K10

    如何让高度、宽度不定容器保持水平、垂直居中

    这个题目似乎解决办法很多,JS是最能够确保各种浏览器中一致性,但是仍然可以使用CSS方式来解决。这个问题分解为两个方面,第一解决左右居中问题,第二解决上下居中问题。 1、左右居中。...这是一个好问题,在做居中布局页面时,这是我们最常用让DIV容器居中办法。margin作用于块级元素,而是否作用于其他内敛元素,不同浏览器有着不同解释,因此对于左右居中,没有使用这个方法。...上下居中,有两种方法,一种是负margin办法,这种对于固定宽度容器,非常好用。另外一种就是适应于高度不固定情形,即使用 vertical-align 属性。...在表单元格中,这个属性会设置单元格框中单元格内容对齐方式。 3、最后代码 综上,可以得出对于高度、宽度都不固定容器,如何让其做到水平、垂直居中: 1 4 5 水平

    2.6K20

    Android 基于RecyclerView实现歌词滚动自定义控件

    本文介绍了Android 基于RecyclerView实现歌词滚动自定义控件,分享给大家,具体如下: 先来几张效果图: ? ?...((;′⌒`)) 接下来说一下实现原理: 该控件分为以下几个部分: 歌词自动滚动 歌词颜色字体变化 触碰屏幕歌词不滚动,高亮显示,离开时自动移动到当前歌词位置 触碰屏幕中间线条出现以及显示该歌词时间...1.对于滚动,我们可以调用 RecyclerView.smoothScrollBy() 方法, 相对于 ScrollBy() 方法,该方法能够实现平滑滑动。 我设置了总共显示九句歌词。...但是我们在 RecyclerView 中是处理了点击事件,而且本身 RecyclerView 就已经重写了拦截了该事件。而且一般是父 View 是不拦截事件。...因为假如我们重写 onTouchEvent 的话,由于 RecyclerView 处理了事件。是不会处理这个方法

    1.7K10

    自定义View实现水平滚动控件

    前几天项目中需要使用到一个水平滚动选择条,类似下图效果(图片是从简书上一位作者那儿找来,本篇也是在这位作者文章基础上修改,站在大神肩膀上,哈哈,由于原文没有提供demo,而且实现效果跟我要不一样...这个滚动选择条主要基于RecyclerView实现,实现功能如下: 1. 滚动选择   2.点击选择   3.选中项目居中高亮显示 效果图如下: ?...介绍下我这个demo使用,非常简单: 1.在xml中加入自定义布局 写入自定义view包名全路径,设置一下其他基本属性,完事。 ?...2.在MainActivity中设置使用     (1)找到自定义view和其中RecyclerView     (2)准备数据     (3)添加监听器              这个监听器主要是为了获取...RecyclerView宽度,因为在onCreate执行时候,视图还没有绘制出来,直接getMeasureWidth()等方法获取都是0,这个监听器给视图添加一个回调,在视图绘制瞬间就可以获得视图宽度

    89820

    创建水平滚动正确方式【CSS 网格布局】

    本文,我们探讨 CSS 网格弹性布局,它是如何帮助我们实现水平滚动,同时处理它带来缺陷。...但是,当采用水平滚动布局时,至少需要满足两点 UX 原则: 你设计必须在视觉上提醒他人,这是一组可以水平滚动内容。最好方法,就是让可滚动内容露出一部分。 用户知道什么时候滚到末尾,这很重要。...带 .full 类名子元素,将会占据全部视窗宽度且没有内边距。 滚动容器 我们使用六个卡片来创建水平滚动容器,一次显示两张。...还记得不,当水平滚动时候,我们希望可滚动内容是从屏幕边缘滑出。 所以,我们在容器中添加 .full 类,并填补缺失内边距。...grid-columns 布局,因为会自动添加到水平滚动容器开头和结尾。

    2.6K50
    领券