在 ViewFlipper 中添加导航句柄
Add navigation handles in 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>
我已经测试了图像按钮和 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
有没有办法将图像按钮手柄拉到 ViewFlipper 的前面?
Android 根据视图在布局中定义的顺序,以升序 Z 顺序重叠视图。如果视图重叠,那些在布局中稍后定义的视图将出现在布局中较早定义的视图之上。因此,如果您只是在 XML 布局中将 ImageButton
移动到 ViewFlipper
之后,它们应该出现在 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>
我已经测试了图像按钮和 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
有没有办法将图像按钮手柄拉到 ViewFlipper 的前面?
Android 根据视图在布局中定义的顺序,以升序 Z 顺序重叠视图。如果视图重叠,那些在布局中稍后定义的视图将出现在布局中较早定义的视图之上。因此,如果您只是在 XML 布局中将 ImageButton
移动到 ViewFlipper
之后,它们应该出现在 ViewFlipper
.