我正在尝试放置一个重叠两个布局的按钮。布局必须有layout_weight,如下图所示,我一直在努力,我已经成功使用下面的代码..但仅适用于api 22(棒棒糖)& 23(MarshMallow)..问题出现在API 19(Kitkat)&下面的布局似乎覆盖了按钮..即,按钮从顶部可见一半。
请帮助我在图像中实现所有Android版本支持.. TIA!
适用于API 22& 23但不是19和以下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.automovill.automovill.testing">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="1">
<LinearLayout
android:id="@+id/LL1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight=".55"
android:background="#2961a7"
android:orientation="vertical">
</LinearLayout>
<Button
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginTop="-25dp"
android:background="#ffd016"
android:padding="10dp"
android:text="TESTING"
android:textColor="#000"
android:textStyle="bold" />
<RelativeLayout
android:id="@+id/LL2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="-25dp"
android:layout_weight=".45"
android:background="#163d6d">
</RelativeLayout>
</LinearLayout>
答案 0 :(得分:0)
说实话,我认为你必须进行各种疯狂的体操才能获得标准布局。 LinearLayout不是正确的工具,因为期望元素彼此相邻(您之前可能一直在利用错误)。
您可以进行标准布局体操,或者您可以编写自己的ViewGroup来管理子视图的布局位置以符合您的需求。你最终将不得不计算像素和所有这些。可能无法避免这些手动计算,因为通常的布局通常期望视图邻接而不是重叠。
答案 1 :(得分:0)
也许尝试将以下代码添加到按钮的布局中:
android:layout_marginBottom="-25dp"
答案 2 :(得分:0)
我会尝试移动布局文件顶部的按钮。 RelativeLayout中有一个关于z ordering of the views的隐式规则。视图越远,z值越高。