viewFlipper.show Previous();显示上一个视图但不更新侦听器

时间:2014-01-01 09:03:01

标签: android viewflipper

我有一个viewflipper,有2个布局。当我使用viewFlipper.showPrevious();后使用viewFlipper.showNext();时。它确实显示以前的布局但不更新后台监听器。这不是以前的布局对触摸没有反应。但是如果我触摸屏幕上第二个布局中按钮所在的位置,那么它会响应它们而不是当前屏幕的视图元素。我不知道是什么导致了这个问题。请有人帮忙。

    islide.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            if (temp == true) {
                temp = false;
                viewFlipper.setInAnimation(getApplicationContext(),
                        R.anim.move);
                viewFlipper.setOutAnimation(getApplicationContext(),
                        R.anim.move2);
                // Show the next Screen
                viewFlipper.showNext();
            } else {
                temp = true;
                viewFlipper.setInAnimation(getApplicationContext(),
                        R.anim.move4);
                viewFlipper.setOutAnimation(getApplicationContext(),
                        R.anim.move3);
                viewFlipper.showPrevious();
            }
        }
    });

1 个答案:

答案 0 :(得分:0)

我不确定你的问题是什么,考虑到问题不是很彻底。但我可以为您提供我的幻灯片视图示例,该视图在这些视图上实现了多个视图和按钮。希望我能提供帮助:

单独视图布局的XML:

<?xml version="1.0" encoding="utf-8"?>

<Button
    android:id="@+id/StoreCatItem"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginBottom="220dp"
    android:layout_marginLeft="30dp"
    android:layout_marginRight="30dp"
    android:layout_marginTop="104dp" />

<TextView
    android:id="@+id/credit_type"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/credit_button"
    android:layout_alignTop="@+id/credit_button"
    android:layout_marginRight="22dp"
    android:layout_marginTop="21dp"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:typeface="normal" />

<TextView
    android:id="@+id/credit_number"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/credit_button"
    android:layout_alignRight="@+id/credit_type"
    android:layout_centerVertical="true"
    android:layout_marginBottom="30dp"
    android:layout_marginLeft="15dp"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

通过这个,你可以在viewFlipper中定义每个视图的样子。

这是主要的XML,包含teh viewFlipper的活动xml:

<?xml version="1.0" encoding="utf-8"?>

<ViewFlipper
    android:id="@+id/view_flipper3"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@+id/backMain_Tit"
    android:layout_margin="6dip" >

</ViewFlipper>

<Button
    android:id="@+id/backMain_StM"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:text="Back" />

最后,我们将在您的活动中提供代码。此代码将视图添加到viewFlipper,并允许您定义参数,例如TextView内容和按钮名称:

// PerkView
    View PerkView = View.inflate(this, R.layout.store_category, null);
    viewFlipper.addView(PerkView);
    Button perkButton = (Button) PerkView.findViewById(R.id.StoreCatItem);

    // TitleView
    View TitleView = View.inflate(this, R.layout.store_category, null);
    viewFlipper.addView(TitleView);
    Button titleButton = (Button) TitleView.findViewById(R.id.StoreCatItem);

    // ProfileView
    View ProfileView = View.inflate(this, R.layout.store_category, null);
    viewFlipper.addView(ProfileView);
    Button profileButton = (Button) ProfileView
            .findViewById(R.id.StoreCatItem);

最后但并非最不重要的是,您可以为上面创建的每个按钮添加一个单独的监听器:

perkButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            //Your Code
        }
    });

希望这有点帮助:P