在ViewFlipper中添加导航手柄

时间:2015-07-16 12:28:31

标签: android z-index viewflipper

我在ViewFlipper中添加了左右导航控制柄,我设法让它全部工作。问题是无论我使用什么布局,句柄总是在ViewFlipper后面呈现。

这是我的XML:

<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <ImageButton
        android:layout_width="30dp"
        android:layout_height="60dp"
        android:id="@+id/flipperLeft"
        android:background="@drawable/arrow_left"
        android:layout_marginTop="60dp"
        android:layout_marginLeft="8dp" />

    <ImageButton
        android:layout_width="30dp"
        android:layout_height="60dp"
        android:id="@+id/flipperRight"
        android:background="@drawable/arrow_right"
        android:layout_marginTop="60dp"
        android:layout_marginRight="8dp" />

    <ViewFlipper
        android:layout_width="fill_parent"
        android:layout_height="180dp"
        android:id="@+id/slider_id"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:autoStart="false">

    </ViewFlipper>

</FrameLayout>

我已经使用Image Buttons和ViewFlipper的所有属性进行了测试,没有任何更改。我后来发现Android在XML属性中没有Z-Index支持 然后,我使用bringToFront以编程方式尝试但没有成功 到目前为止,这是我的代码:

mViewFlipper = (ViewFlipper) findViewById(R.id.slider_id);
mViewFlipper.setAutoStart(true);
mViewFlipper.setFlipInterval(6000);

page_img.moveToFirst();
while (!page_img.isAfterLast()) {
    ImageView imageView = new ImageView(this);
    Picasso.with(this)
        .load("http://www.example.pt/app_images/"+page_img.getString(0)) 
        .fit().into(imageView);


    mViewFlipper.addView(imageView);

    page_img.moveToNext();
}


ImageButton flipperLeft = (ImageButton) findViewById(R.id.flipperLeft);
ImageButton flipperRight = (ImageButton) findViewById(R.id.flipperRight);

flipperLeft.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        mViewFlipper.showPrevious();
    }
});

flipperRight.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        mViewFlipper.showNext();
    }
});

flipperLeft.bringToFront();

这是我的配置:

minSdkVersion 15
targetSdkVersion 21

有没有办法拉动ImageFlipper前面的Image Button处理?

1 个答案:

答案 0 :(得分:1)

Android图层按照在布局中定义的顺序以升序Z顺序重叠视图。如果视图重叠,那么稍后在布局中定义的视图将显示在布局中先前定义的视图上方。因此,如果您只是在XML布局中的ImageButton之后移动ViewFlipper,则它们应显示在ViewFlipper之上。