相对布局儿童占据屏幕的全高度

时间:2015-11-24 19:09:01

标签: android mpandroidchart android-relativelayout

我正在尝试在活动中获取图表和3个按钮。 3个按钮应在图表下方对齐。我有以下XML但按钮只是被图表抑制(为清晰起见编辑:按钮不可见。)

<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:orientation="vertical"
    tools:context=".PlotActivity">

    <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/chart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"/>

    <Button
        android:id="@+id/one_week_preset_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/chart"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:text="@string/one_week_label" />

    <Button
        android:id="@+id/one_month_preset_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/chart"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="@string/one_month_label" />

    <Button
        android:id="@+id/download_new_data_and_update_graph"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/chart"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="@string/download_and_update_label" />

</RelativeLayout>

我很确定这可以通过线性布局的两级嵌套轻松完成,但是这个XML有什么问题以及如何解决这个问题。任何帮助表示赞赏。

上面的XML生成如android studio中所示的以下屏幕(注意图表占据了整个屏幕,因此按钮不可见)

Chart Occupying complete screen

1 个答案:

答案 0 :(得分:1)

使用图表视为此。这是因为你告诉布局将父顶部和wrap_content对齐,这可能是父节点的底部。你应该告诉它从底部到底应该是什么。

<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:orientation="vertical"
tools:context=".PlotActivity">

<com.github.mikephil.charting.charts.LineChart
    android:id="@+id/chart"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_above="@+id/one_week_preset_button"
/>

<Button
    android:id="@+id/one_week_preset_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:text="@string/one_week_label" />

<Button
    android:id="@+id/one_month_preset_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:text="@string/one_month_label" />

<Button
    android:id="@+id/download_new_data_and_update_graph"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:text="@string/download_and_update_label" />

</RelativeLayout>