Android:具有三种线性布局的水平滚动视图

前端之家收集整理的这篇文章主要介绍了Android:具有三种线性布局的水平滚动视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想用水平滚动视图创建一个活动.滚动视图的内容将是三个不同的线性布局.这些线性布局中的每一个都应占据设备屏幕的整个宽度.因此,当活动开始时,只有一个线性布局占据屏幕的整个宽度,当用户向右滑动时,另一个线性布局将以全宽显示. (见图)

我不确定如何设置linearlayouts的宽度,以便它们适合屏幕的宽度.关于如何以一种好的方式解决这个问题的任何想法?

解决方法

我认为你必须使用ViewFlipper而不是scrollView.
在viewflipper上使用触摸事件进行导航,并使用动画来翻转两个线性布局.

这个例子对你有帮助
View Flipper example

编辑:

脚步:

>有一个ViewFlipper,它包含layout1,layout2,layoout3
>目前layout1可见.
>从右向左投掷以显示下一个布局. layout1 – >布局2

动画将在这两个视图(layout1和layout2)上应用.

> for 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>

> for 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();

>现在从左向右投掷以显示先前的布局. layout2 – >布局1

动画将在这两个视图(layout1和layout2)上应用.

> for 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>

> for 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相关文章