Прокрутка макета больше, чем дисплей - PullRequest
1 голос
/ 17 марта 2020

Я хочу сделать свой макет в 4 раза больше, чем размер дисплея. Я делаю это так:

private lateinit var view: View
private lateinit var binding: ActivitySkyBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    binding = DataBindingUtil.setContentView(this,
        R.layout.activity_sky
    )
    view = binding.skyActivity
    view.setBackgroundResource(R.drawable.gradient)

}

override fun onWindowFocusChanged(hasFocus: Boolean) {
    super.onWindowFocusChanged(hasFocus)
    val params = view.layoutParams
    params.width = view.resources.displayMetrics.widthPixels*4
    params.height = view.resources.displayMetrics.heightPixels*4
    view.layoutParams = params
}

А вот мой XML макет:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">

<ScrollView
    android:id="@+id/sky_activity"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:fillViewport="true"
    tools:context=".skyActivity">

    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">

    </HorizontalScrollView>

</ScrollView>

Я думаю, как я установил новый размер работает, потому что мой градиент выглядит иначе (я вижу его левую верхнюю часть), но я не могу прокрутить в любом направлении. Мне нужно иметь возможность прокручивать по вертикали, по горизонтали и по диагонали, а также увеличивать / уменьшать масштаб.

...