Abstract3000
Abstract3000

Reputation: 79

MPAndroid adjustment to screen size without fixed height

So I have been trying every mix and match with different layouts and settings and still cant figure out how to make this work. I want to have a spinner on the Same Screen as an MPAndroid Line Chart, I know I can fix the height Manually and adjust it to fit properly, but fill parent or match parent does not account for the spinner and just pushes it off the screen! If I load the application on my phone with height of 290dp Great fits perfectly! Load it on the 7" tablet not so pretty... Half the screen is empty. How do I contain the Chart to fill a layout that accounts for spinner? Wrap Content on the chart makes it unusable.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".history"
    android:background="#303030">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
        <com.github.mikephil.charting.charts.LineChart
            android:id="@+id/chart"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>
</LinearLayout>

    <Spinner
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/spinner4"
    android:entries="@array/list3"
    android:popupBackground="#303030"
    android:layout_centerHorizontal="true" />

</LinearLayout>

Upvotes: 0

Views: 2554

Answers (2)

User_1191
User_1191

Reputation: 981

Try this,

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 xmlns:tools="http://schemas.android.com/tools"
 tools:context=".history"
 android:background="#303030">

<LinearLayout
  android:layout_width="match_parent"
  android:layout_height="0dp"
  android:layout_weight="70">
    <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/chart"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
</LinearLayout>

<Spinner
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="30"
android:id="@+id/spinner4"
android:entries="@array/list3"
android:popupBackground="#303030"
android:layout_centerHorizontal="true" />


</LinearLayout>

Because of using weight, on any screen "map and spinner" will look like in same screen height ratio.

Upvotes: 1

Haris Aftab
Haris Aftab

Reputation: 259

Try using this I have removed some attributes which were missing at my end. This is where spinner is on top and rest is filled with line chart.

<?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:background="#303030"
        android:orientation="vertical">

        <Spinner
            android:id="@+id/spinner4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:popupBackground="#303030" />

        <com.github.mikephil.charting.charts.LineChart
            android:id="@+id/chart"
            android:layout_width="fill_parent"
            android:layout_below="@+id/spinner4"
            android:layout_height="fill_parent" />


    </RelativeLayout>

Upvotes: 2

Related Questions