Я пытаюсь проверить концепцию, когда веб-просмотр загружает локальные HTML файлы, и пользователи могут перемещаться влево / вправо до go до следующего файла, находясь в полноэкранном режиме. Я использую ViewPager2 и обычные веб-представления. У меня эта часть работает, но я хочу, чтобы пользователь нажал один раз, отобразил или скрыл панель инструментов, строку состояния и элементы управления навигацией. Прямо сейчас у меня есть код setOnTouchListener на viewPager, но похоже, что сенсорные события потребляются веб-просмотром.
Как я могу выполнить sh, когда одним нажатием можно переключаться между полноэкранным и неэкранным режимами? -полноэкранный режим, не прерывая подкачку ViewPager и долгое нажатие в веб-представлении?
Вот большая часть моего кода. Я оставляю детали для краткости, которые не должны быть связаны.
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_my)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
viewPager.setOnTouchListener { _, event ->
when(event.action) {
MotionEvent.ACTION_DOWN -> {
initialX = event.rawX
initialY = event.rawY
moved = false
}
MotionEvent.ACTION_MOVE -> {
if (event.rawX != initialX || event.rawY != initialY) {
moved = true
}
}
MotionEvent.ACTION_UP -> {
if (!moved) {
toggle()
}
}
}
true
}
viewPager.adapter = MyAdapter(items, this)
}
}
class MyAdapter(private val items: List<String>) : RecyclerView.Adapter<MyViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.view_pager_item, parent, false) as WebView
return MyViewHolder(view, items)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.bind(position)
}
override fun getItemCount(): Int {
return items.size
}
}
class MyViewHolder (private val webView: WebView, private val items: List<String>) :
RecyclerView.ViewHolder(webView) {
internal fun bind(position: Int) {
webView.loadUrl("file://" + items[position])
}
}