我有这个问题:我创建了一个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>
在工作室这是结果:
对我来说还可以。这就是我想要的。但是当我运行应用程序时,这就是结果:
行为是这样的:开始时我看到两个ImageButtons,但是当Picasso完成加载图像时,第一个按钮(左侧)被中心的图像隐藏。
我不明白为什么......我之前尝试使用相对布局,但结果相同......
提前致谢
答案 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>