我想创建一个带有水平 ScrollView 的 Activity 。 ScrollView 的内容将是三种不同的线性布局。这些线性布局中的每一个都应该占据设备屏幕的整个宽度。因此,当 Activity 开始时,只有一个线性布局占据了屏幕的整个宽度,当用户向右滑动时,另一个线性布局将以全宽显示。 (见图)
我不确定如何设置线性布局的宽度,以便它们适合屏幕的宽度。关于如何以好的方式解决这个问题的任何想法?
最佳答案
我认为您必须使用 ViewFlipper 而不是 scrollView。 在 viewflipper 上使用触摸事件进行导航,并使用动画来翻转两个线性布局。
这个例子会帮助你 View Flipper example
编辑:
步骤:
- 有一个包含 layout1、layout2、layoout3 的 ViewFlipper
- 当前 layout1 可见。
- 从右向左滑动以显示下一个布局。布局1 --> 布局2
动画将在此处应用于两个 View (layout1 和 layout2)。
对于 layout2 -> push_right_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator"> <translate android:fromXDelta="100%" android:toXDelta="0%" android:duration="400" /> </set>
对于 layout1 -> push_right_out.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator"> <translate android:fromXDelta="0%" android:toXDelta="-100%" android:duration="400" /> </set>
然后将此动画设置为 viewflipper 的子级。
flipper.setInAnimation(<your class>.this, R.anim.push_right_in); flipper.setOutAnimation(<your class>.this, R.anim.push_right_out); flipper.showNext();
- 现在从左向右滑动以显示之前的布局。布局2 --> 布局1
动画将在此处应用于两个 View (layout1 和 layout2)。
对于 layout1 -> push_left_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator"> <translate android:fromXDelta="-100%" android:toXDelta="0%" android:duration="400" /> </set>
对于 layout2 -> push_left_out.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator"> <translate android:fromXDelta="0%" android:toXDelta="100%" android:duration="400" /> </set>
然后将此动画设置为 viewflipper 的子级。
flipper.setInAnimation(<your class>.this, R.anim.push_left_in); flipper.setOutAnimation(<your class>.this, R.anim.push_left_out); flipper.showPrevious();
这会给你一个流畅的动画。
关于Android:具有三个线性布局的水平 ScrollView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5714137/