我在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处理?
答案 0 :(得分:1)
Android图层按照在布局中定义的顺序以升序Z顺序重叠视图。如果视图重叠,那么稍后在布局中定义的视图将显示在布局中先前定义的视图上方。因此,如果您只是在XML布局中的ImageButton
之后移动ViewFlipper
,则它们应显示在ViewFlipper
之上。