3

我正在尝试使用具有 2 个布局的 ViewFlipper 为 Android 应用程序制作一个幻灯片菜单,1 个作为菜单,1 个作为内容。当触摸内容布局中的按钮时,菜单应从左侧滑入并覆盖 80% 的屏幕。我现在这样做的方式是让菜单滑入 80%,然后在动画之后显示 100% 的菜单。关于如何使这项工作的任何想法?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <ViewFlipper android:id="@+id/viewflipper"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">   
<!-- content -->
        <LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
                <Button android:id="@+id/bt_test"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="slide"/>
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="hello"/>
        </LinearLayout>
<!-- menu -->
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
        </LinearLayout>
    </ViewFlipper>
</LinearLayout>

动画:出:

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="80%" android:duration="500"/>
</set>

在:

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="-100%" android:toXDelta="-20%" android:duration="500"/>
</set>

点击:

            flipper.setInAnimation(MainActivity.this, R.anim.slide_in);
            flipper.setOutAnimation(MainActivity.this, R.anim.slide_out);
            flipper.showNext();
4

1 回答 1

2

改用这个优秀的库项目。没有必要重新发明轮子。

至少您可以查看使用的技术,因为所有源代码都可用。

https://github.com/jfeinstein10/SlidingMenu

https://play.google.com/store/apps/details?id=com.slidingmenu.example

于 2012-12-18T18:30:24.783 回答