使用滚动视图

Scrolled.js
/**
 * Created by zhoujian on 2019/4/9.
 */


import React, { Component } from 'react';
import { AppRegistry, ScrollView, Image, Text } from 'react-native';

export default class Scrolled extends Component {

    render(){
        return(
            <ScrollView>
                <Text style={{fontSize:100}}>Scroll</Text>
                <Image source={{uri:"https://facebook.github.io/react-native/img/favicon.png",width:100,height:100}}/>
                <Image source={{uri:"https://facebook.github.io/react-native/img/favicon.png",width:100,height:100}}/>
                <Image source={{uri:"https://facebook.github.io/react-native/img/favicon.png",width:100,height:100}}/>
                <Image source={{uri:"https://facebook.github.io/react-native/img/favicon.png",width:100,height:100}}/>
                <Image source={{uri:"https://facebook.github.io/react-native/img/favicon.png",width:100,height:100}}/>
                <Image source={{uri:"https://facebook.github.io/react-native/img/favicon.png",width:100,height:100}}/>
                <Image source={{uri:"https://facebook.github.io/react-native/img/favicon.png",width:100,height:100}}/>
                <Text style={{fontSize:100}}>Scroll</Text>
            </ScrollView>
        );
    }
}

 

index.js


import {AppRegistry} from 'react-native';
import Scrolled from './js/Scrolled';
import {name as appName} from './app.json';
AppRegistry.registerComponent(appName, () => Scrolled);


 

 

 

 

Android中的滚动视图可以让我们在一个较小的视图内展示较大的内容。常见的滚动视图包括ScrollView和RecyclerView。下面分别介绍一下它们的使用。 1. ScrollView ScrollView是一个可以垂直滚动视图容器,可以将其内部的子视图按照垂直方向排列,并且支持垂直方向的滚动使用ScrollView需要注意以下几点: (1)ScrollView只能直接包含一个子视图,如果需要添加多个子视图,需要将它们放在一个容器中,再将容器放在ScrollView中。 (2)如果ScrollView的子视图比较多,会影响性能,因此需要注意优化。 下面是一个使用ScrollView的例子: ```xml <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="这是一段很长很长的文字......"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/image"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="这是一个按钮"/> </LinearLayout> </ScrollView> ``` 2. RecyclerView RecyclerView是一个可以展示大量数据的高性能视图容器,可以实现复杂的滚动效果。与ScrollView相比,RecyclerView的使用稍微复杂一些,需要定义一个Adapter来管理数据和视图,同时还需要定义LayoutManager来管理RecyclerView的布局方式。下面是一个使用RecyclerView的例子: (1)定义一个布局文件,用于展示每一个列表项: ```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" android:orientation="horizontal" android:padding="16dp"> <ImageView android:id="@+id/image_view" android:layout_width="48dp" android:layout_height="48dp" android:src="@drawable/image"/> <TextView android:id="@+id/text_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:text="这是一段文本"/> </LinearLayout> ``` (2)定义一个Adapter来管理数据和视图: ```java public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private List<String> mData; public MyAdapter(List<String> data) { mData = data; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false); return new MyViewHolder(view); } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { holder.textView.setText(mData.get(position)); } @Override public int getItemCount() { return mData.size(); } public static class MyViewHolder extends RecyclerView.ViewHolder { public ImageView imageView; public TextView textView; public MyViewHolder(@NonNull View itemView) { super(itemView); imageView = itemView.findViewById(R.id.image_view); textView = itemView.findViewById(R.id.text_view); } } } ``` (3)在Activity中使用RecyclerView: ```java public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private MyAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = findViewById(R.id.recycler_view); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mAdapter = new MyAdapter(getData()); mRecyclerView.setAdapter(mAdapter); } private List<String> getData() { List<String> data = new ArrayList<>(); for (int i = 0; i < 100; i++) { data.add("这是第" + (i + 1) + "个列表项"); } return data; } } ``` 在上面的例子中,我们首先使用LinearLayoutManager来管理RecyclerView的布局方式,然后创建一个MyAdapter来管理数据和视图,最后将MyAdapter设置给RecyclerView即可。在MyAdapter中,我们重写了onCreateViewHolder、onBindViewHolder和getItemCount三个方法来管理数据和视图。具体可以参考代码实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值