android-viewpager - android中的自动viewPager
问题描述
我正在使用 viewpager 库来实现图像滑块,但不知道如何实现它来自动滚动。这是我的代码。我的代码在 mainActivity 中出错,ViewPageAdapter 我已经解决了六个小时的问题。请帮我。
1.MainActivity
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.viewpager.widget.ViewPager
class MainActivity : AppCompatActivity() {
internal lateinit var viewpager :ViewPager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
viewpager = findViewById(R.id, viewpager) as ViewPager
val adapter = ViewPagerAdapter(this)
viewpager.adapter = adapter
}
}
2.ViewPagerAdapter
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.viewpager.widget.PagerAdapter
import androidx.viewpager.widget.ViewPager
class ViewPagerAdapter(private val context: Context):PagerAdapter() {
private var layoutInflater:LayoutInflater?=null
var Image = arrayOf(
R.drawable.imgview_1, R.drawable.imgview_2, R.drawable.imgview_3
)
override fun isViewFromObject(view: View, `object`: Any): Boolean {
return view===`object`
}
override fun getCount(): Int {
return Image.size
}
override fun instantiateItem(container: ViewGroup, position: Int): Any {
layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val v = layoutInflater!!.inflate(R.layout.viewpager_activity, null)
val image = v.findViewById<View>(R.id, imageview) as ImageView
image.setImageResource(Image[position])
val vp = container as ViewPager
vp.addView(v, 0)
return v;
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
val vp = container as ViewPager
val v = `object` as View
vp.removeView(v)
}
}
3.ViewPagerActivity
<?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="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/imageview"/>
</LinearLayout>
4.activity_main
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_3"
app:layout_constraintTop_toBottomOf="@id/main_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
解决方案
您可能会发现使用ViewFlipper类会更好,因为它可以设置为在视图之间自动切换并在加载时自动启动。
推荐阅读
- google-sheets-api - Google 数据洞察中的简单数据透视
- javascript - 值错误:未定义,当我尝试使用节点/快速服务器将一些信息保存到 mongo db 集合时
- pdfsharp - 在导入的 PDFsharp 页面上渲染 MigraDoc 页面不起作用
- tensorflow - 什么是最小的 Keras 回归神经网络模型,可以完美拟合汽车数据?
- redis - 当相应状态在一段时间不活动后被视为“关闭”时,如何取消设置 redis 位集中的位?
- python - 尝试使用正则表达式删除行并写入新文件时出错
- python - 如何在for循环python-pptx中将两个或多个图像添加到同一张幻灯片
- javascript - 带有 React Hooks 的 Firebase 监听器
- flutter - 如何使用 async-redux 包将 TextEditingController 值从页面传递到 Flutter 中的操作?
- php - 如何用 preg_match 替换 eregi 函数?