Android:加载后,图像隐藏其他人

时间:2014-06-10 07:22:46

标签: android android-layout

我有这个问题:我创建了一个FrameLayout,边缘有两个透明按钮(左右)

     <FrameLayout
        android:layout_below="@id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        >

    <ImageButton
            android:background="@android:color/transparent"
            android:layout_height="240dp"
            android:layout_width="wrap_content"
            android:src="@drawable/ic_action_previous_item"
            android:id="@+id/btn_item_prev"
            android:layout_gravity="left"
            />

    <ImageView
            android:layout_width="match_parent"
            android:layout_height="240dp"
            android:id="@+id/myimage"
            android:layout_gravity="fill"
            />

    <ImageButton
            android:background="@android:color/transparent"
            android:layout_height="240dp"
            android:layout_width="wrap_content"
            android:src="@drawable/ic_action_next_item"
            android:id="@+id/btn_item_next"
            android:layout_gravity="right"/>

</FrameLayout>

在工作室这是结果: enter image description here

对我来说还可以。这就是我想要的。但是当我运行应用程序时,这就是结果:

enter image description here

行为是这样的:开始时我看到两个ImageButtons,但是当Picasso完成加载图像时,第一个按钮(左侧)被中心的图像隐藏。

我不明白为什么......我之前尝试使用相对布局,但结果相同......

提前致谢

6 个答案:

答案 0 :(得分:1)

在framelayout中,z-index由添加的订单视图定义,更改视图的顺序,先添加imageview,然后再添加导航按钮

答案 1 :(得分:1)

尝试使用这样:

<FrameLayout
        android:layout_below="@id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        >

    <ImageView
            android:layout_width="match_parent"
            android:layout_height="240dp"
            android:id="@+id/myimage"
            android:layout_gravity="fill"
            />
     <ImageButton
            android:background="@android:color/transparent"
            android:layout_height="240dp"
            android:layout_width="wrap_content"
            android:src="@drawable/ic_action_previous_item"
            android:id="@+id/btn_item_prev"
            android:layout_gravity="left"
            />
    <ImageButton
            android:background="@android:color/transparent"
            android:layout_height="240dp"
            android:layout_width="wrap_content"
            android:src="@drawable/ic_action_next_item"
            android:id="@+id/btn_item_next"
            android:layout_gravity="right"/>

</FrameLayout>

答案 2 :(得分:1)

如果您使用RelativeLayout,请注意元素的顺序。

ImageView应该是RelativeLayout中的第一个元素,因此它不会阻止ImageButton。

<ImageView
        android:layout_width="match_parent"
        android:layout_height="240dp"
        android:id="@+id/myimage"
        android:layout_gravity="fill"
        />

<ImageButton
        android:background="@android:color/transparent"
        android:layout_height="240dp"
        android:layout_width="wrap_content"
        android:src="@drawable/ic_action_next_item"
        android:id="@+id/btn_item_next"
        android:layout_gravity="right"/>

<ImageButton
        android:background="@android:color/transparent"
        android:layout_height="240dp"
        android:layout_width="wrap_content"
        android:src="@drawable/ic_action_previous_item"
        android:id="@+id/btn_item_prev"
        android:layout_gravity="left"
        />

答案 3 :(得分:1)

试试这个

   <FrameLayout
        android:layout_below="@id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        >


    <ImageView
            android:layout_width="match_parent"
            android:layout_height="240dp"
            android:id="@+id/myimage"
            android:layout_gravity="fill"
            />
  <ImageButton
            android:background="@android:color/transparent"
            android:layout_height="240dp"
            android:layout_width="wrap_content"
            android:src="@drawable/ic_action_previous_item"
            android:id="@+id/btn_item_prev"
            android:layout_gravity="left"
            />

    <ImageButton
            android:background="@android:color/transparent"
            android:layout_height="240dp"
            android:layout_width="wrap_content"
            android:src="@drawable/ic_action_next_item"
            android:id="@+id/btn_item_next"
            android:layout_gravity="right"/>

</FrameLayout>

FrameLayout由其他人控制。所以,在你的设计中,首先是图像按钮然后是imageview。因此,图像按钮被imageview隐藏。

答案 4 :(得分:0)

试试这个布局

<FrameLayout
        android:layout_below="@id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        >
<ImageView
            android:layout_width="match_parent"
            android:layout_height="240dp"
            android:id="@+id/myimage"
            android:layout_gravity="fill"
            />
 <ImageButton
            android:background="@android:color/transparent"
            android:layout_height="240dp"
            android:layout_width="wrap_content"
            android:src="@drawable/ic_action_previous_item"
            android:id="@+id/btn_item_prev"
            android:layout_gravity="left"
            />
 <ImageButton
            android:background="@android:color/transparent"
            android:layout_height="240dp"
            android:layout_width="wrap_content"
            android:src="@drawable/ic_action_next_item"
            android:id="@+id/btn_item_next"
            android:layout_gravity="right"/>
 </FrameLayout>

答案 5 :(得分:0)

将两个按钮放在 imageview 上方,然后按钮将不会被隐藏。代码将是

<FrameLayout
        android:layout_below="@id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        >



    <ImageView
            android:layout_width="match_parent"
            android:layout_height="240dp"
            android:id="@+id/myimage"
            android:layout_gravity="fill"
            />

    <ImageButton
            android:background="@android:color/transparent"
            android:layout_height="240dp"
            android:layout_width="wrap_content"
            android:src="@drawable/ic_action_previous_item"
            android:id="@+id/btn_item_prev"
            android:layout_gravity="left"
            />

    <ImageButton
            android:background="@android:color/transparent"
            android:layout_height="240dp"
            android:layout_width="wrap_content"
            android:src="@drawable/ic_action_next_item"
            android:id="@+id/btn_item_next"
            android:layout_gravity="right"/>

</FrameLayout>