我正在尝试实现一个应用程序的介绍,该应用程序具有具有3个页面的视图页和自定义动画,使用: setPageTransformer
居中页面中的视图不与动画一起流动-在从第一页到第二页的滑动结束时,它返回到原始位置-这导致从第二页到第三页的错误动画
这是我的代码:
pager.setPageTransformer(true) { view, position ->
var mPosition = position
val pageWidth = view.width
val pageHeight = view.height
val ratio = pageWidth.toFloat() / pageHeight
if (position in 0.0..1.0) {
bubble_intro_imageView.setTranslationY(-(pageWidth * (1 - mPosition) / 3 * ratio))
notification_intro_textView.setTranslationX(pageWidth * (1 - mPosition) / 8 * ratio)
bubble_intro_textView.setTranslationY(pageWidth * (1 - mPosition) / 3 * ratio)
} else if (position in -1.0..-0.0) {
var negativePosition = -position
bubble_intro_imageView.setTranslationY(-(pageWidth * (1 - negativePosition) / 3 * ratio))
notification_intro_textView.setTranslationX((pageWidth * (1 - negativePosition) / 8 * ratio))
bubble_intro_textView.setTranslationY((pageWidth * (1 - negativePosition) / 3 * ratio))
}
}
我正在使用“androidx”作为片段、适配器和Viewpager:
我的适配器 :
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentStatePagerAdapter
import java.util.ArrayList
class IntroPageAdapter(fragmentManager: FragmentManager) : FragmentStatePagerAdapter(
fragmentManager,
BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
var fragments = ArrayList<Fragment>()
fun addFrag(fragment: Fragment) {
fragments.add(fragment)
}
override fun getItem(position: Int): Fragment {
return fragments[position]
}
override fun getCount(): Int {
return fragments.size
}
}
我错过了什么吗?
经过几个小时的寻找问题。我找到了一个有点奇怪的解决方案,问题出在KTX-extension上
一旦我删除了它的用法并将其更改为“findViewById”它工作得很好,动画中没有中断
我不知道该如何解释
我的代码:
pager.setPageTransformer(true) { view, position ->
var mPosition = position
val pageWidth = view.width
val pageHeight = view.height
val ratio = pageWidth.toFloat() / pageHeight
notificationImageView = view.findViewById<View>(R.id.notification_intro_imageView) as ImageView?
bubbleImageView = view.findViewById<View>(R.id.bubble_intro_imageView) as ImageView?
bubbleTextView = view.findViewById<View>(R.id.bubble_intro_textView) as TextView?
if (position in 0.0..1.0) {
if (notificationImageView != null && bubbleImageView != null && bubbleTextView != null) {
notificationImageView!!.setTranslationY(-(pageWidth * (1 - mPosition) / 3 * ratio))
bubbleImageView!!.setTranslationX(pageWidth * (1 - mPosition) / 8 * ratio)
bubbleTextView!!.setTranslationY(pageWidth * (1 - mPosition) / 3 * ratio)
}
} else if (position in -1.0..-0.0) {
if (notificationImageView != null && bubbleImageView != null && bubbleTextView != null) {
var negativePosition = -position
notificationImageView!!.setTranslationY(-(pageWidth * (1 - negativePosition) / 3 * ratio))
bubbleImageView!!.setTranslationX((pageWidth * (1 - negativePosition) / 8 * ratio))
bubbleTextView!!.setTranslationY((pageWidth * (1 - negativePosition) / 3 * ratio))
}
}
}
有人知道解释吗?
我在另一个论坛上问过这个问题,但从来没有运气。我在网上找到了下面的命令,它应该使用FFMPEG从图像创建一个视频(每个持续时间为5秒)。 FFMPEG-F image2-r 1/5-i img%03d.png-vcodec libx264 out.mp4 编辑:添加命令行输出
第一个 SwiftUI 项目:)我有一个来自顶级视图中的列表中的 NavLink,该列表调用详细信息视图。它一直在工作,直到我需要将结构的@State变量添加到详细信息视图中,现在调用参数列表与编译器期望的不匹配: 并且细节视图开始: 并且字形结构被定义为: 错误出现在顶级ContentView导航链接目标中: 我在调用列表中尝试了几种变化,并试图删除SelectGlyph中的@State包装,但
我试图将YUV_420_888图像转换为位图,来自camera2预览。但是输出图像的颜色不正确。 请让我知道如果有人能发现转换的问题:
我读过一些关于使用bing的东西,但我不确定,你知道另一种方法吗?,我想我需要在线才能使用bing库。我说的对吗?
我想把base64编码的字符串转换成位图,这样我就可以把它放在图像视图中,但是得到的错误像
当我想做Apk文件时,我得到了8个错误,我希望有人帮助我修复它 任务:app:CompileReleaseJavaWithJavac失败C:\codes\code\app\src\main\Java\com\insta\followers\tagsactivity.Java:61:错误:不兼容类型:视图无法转换为LinearLayout unitBanner=findViewById(r.id.u