我试图在屏幕上放置两个LinearLayouts:一个小的在底部,一个较大的占用屏幕空间的其余部分。
他们在RelativeLayout中。我将底部线性布局设置为锚定到屏幕底部,硬编码高度为dp。较大的LinearLayout设置在底部之上。
这可以按照预期的方式工作,但我不能让底部(较小的)linearlayout显示在横向中。即使我将其高度设置为非常高的数字。顺便说一下,这两种布局在Android Studio编辑器中看起来都是预期的。
这是XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#ff1b284b"
android:orientation="vertical">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/plusZoomMinusButtons">
-- Removed inner views --
</LinearLayout>
<LinearLayout
android:id="@+id/plusZoomMinusButtons"
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="top"
android:orientation="horizontal"
android:layout_alignParentBottom="true">
-- Removed inner views --
</LinearLayout>
</RelativeLayout>
编辑:即使是布局,问题也没有,我在程序的其他地方发现了一段与布局相混淆的代码,但仅限于横向:|
答案 0 :(得分:1)
没有必要在android:orientation="vertical"
中提供您在代码中编写的RelativeLayout
。好的一个简单的解决方案就是将主RelativeLayout
更改为LinearLayout
并将权重属性添加到LinearLayout
,这是主要父亲的第一个孩子。
android:layout_weight="1"
以下是您的热门XML
的外观
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff1b284b"
android:orientation="vertical">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="0dp"
>
//Leave others as it is
或尝试将weightSum
提供给家长,并提供与家长weight
匹配的weightSum
,如下所示
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff1b284b"
android:weightSum = "3"
android:orientation="vertical">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_weight="2"
android:layout_height="0dp"
>
//Body
</LinearLayout>
<LinearLayout
android:id="@+id/plusZoomMinusButtons"
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="top"
android:layout_weight="1"
android:orientation="horizontal">
</LinearLayout>
</LinearLayout>
注意:如果您为内存管理提供0dp
属性,最好将height
置于android:layout_weight
。这些是**删除,因为它是不必要的**
android:layout_height="wrap_content"
android:layout_above="@+id/plusZoomMinusButtons"
答案 1 :(得分:0)
试试这个XML。也许它会解决你的问题。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff1b284b">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/plusZoomMinusButtons">
<LinearLayout
android:orientation="vertical"
android:layout_width="30dp"
android:layout_height="match_parent"
android:id="@+id/eegLegend"
android:layout_marginBottom="33dp"
android:layout_marginTop="5dp"
android:gravity="center_vertical"
android:layout_marginRight="2dp">
</LinearLayout>
<XYPlot
android:id="@+id/aprHistoryPlot"
title="A/P/R History"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginLeft="0dp"
android:layout_marginRight="5dp"
android:layout_marginTop="0dp"
android:layout_weight="0"/>
</LinearLayout>
<LinearLayout
android:id="@+id/plusZoomMinusButtons"
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="horizontal"
android:layout_alignParentBottom="true">
<Button
android:id="@+id/minus"
android:layout_width="10dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@color/grey"
android:paddingBottom="5dp"
android:text="-"
android:textColor="@android:color/white"
android:textSize="10dp" />
<TextView
android:id="@+id/magnification"
android:layout_width="30dp"
android:layout_height="match_parent"
android:layout_weight="5"
android:gravity="center"
android:text="10x"
android:textColor="#ffffff"
android:textSize="25dp"
android:textStyle="bold" />
<Button
android:id="@+id/plus"
android:layout_width="10dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@color/grey"
android:paddingBottom="5dp"
android:text="+"
android:textColor="@android:color/white"
android:textSize="10dp" />
</LinearLayout>
</RelativeLayout>