Muhammad Rehan Qadri
Muhammad Rehan Qadri

Reputation: 7694

Can't adjust weights in linear layout - android

I've searched but couldn't figure out the problem.

enter image description here

I want to make exactly like the above picture. I've used linear layout in vertical for the "Day Teams Score Status" And then for the content containing the values of above headings, I've used a listview.

What I've achieved is that headings "Day Teams Score Status" are being shown with spaces but the contents ( which are in seperate .xml file ) are not being shown with spaces, so what I'm getting is:

enter image description here

The adapter xml file for the list view is:

adapter_my_matches.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    >


    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Date"
        android:id="@+id/textViewDate"
        android:layout_weight="0.1"
        android:layout_gravity="center_vertical" />

    <LinearLayout
        android:id="@+id/ll"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_weight="0.4">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Teams"
            android:id="@+id/textViewTeams1"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Teams"
            android:id="@+id/textViewTeams2"/>
    </LinearLayout>

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Score"
        android:id="@+id/textViewScore"
        android:layout_weight="0.1"
        android:layout_gravity="center_vertical" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Status"
        android:id="@+id/textViewStatus"
        android:layout_weight="0.2"
        android:layout_gravity="center_vertical" />
</LinearLayout>

Upvotes: 0

Views: 761

Answers (4)

Remees M Syde
Remees M Syde

Reputation: 2609

I think this is the layout you are looking for.Let me know if anything going bad. Here the weight i set for a sample, you can change it according to your need.

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

    >
    <LinearLayout
        android:id="@+id/ll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum= "6">
         <TextView
        android:layout_width="0dp"

        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Date"
        android:id="@+id/textViewDate"
        android:layout_weight="1.2"
        android:gravity="center" />
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Teams"
            android:id="@+id/textViewTeams1"
            android:gravity="center"
            android:layout_weight="2"/>


        <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Score"
        android:id="@+id/textViewScore"
        android:layout_weight="1.4"
        android:gravity="center"
         />

       <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Status"
        android:id="@+id/textViewStatus"
        android:layout_weight="1.4"
        android:gravity="center"
         />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/ll1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum= "6">
         <TextView
        android:layout_width="0dp"

        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="12 Feb"
        android:id="@+id/textViewDate1"
        android:layout_weight="1.2"
        android:gravity="center" />
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="IND VS PAK"
            android:id="@+id/textViewTeams11"
            android:gravity="center"
            android:layout_weight="2"/>


        <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="256"
        android:id="@+id/textViewScore1"
        android:layout_weight="1.4"
        android:gravity="center"
        />

       <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="WIN"
        android:id="@+id/textViewStatus1"
        android:layout_weight="1.4"
        android:gravity="center"
         />
    </LinearLayout>

</LinearLayout>

Upvotes: 1

Fahim
Fahim

Reputation: 12378

Add this to your linearlayout code

android:weightSum="0.8" 

Upvotes: 1

Mayur R. Amipara
Mayur R. Amipara

Reputation: 1223

give layout_weight to parent layout and give weight to child element and make sure that layout_weight should be sum of its all child's weight total. make width of child as warp_content.

Upvotes: 0

Rathan Kumar
Rathan Kumar

Reputation: 2577

Use this One :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="8" >

    <TextView
        android:id="@+id/textViewDate"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:text="Date"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <LinearLayout
        android:id="@+id/ll"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="4"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textViewTeams1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Teams"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/textViewTeams2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Teams"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </LinearLayout>

    <TextView
        android:id="@+id/textViewScore"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:text="Score"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textViewStatus"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="2"
        android:text="Status"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

Upvotes: 0

Related Questions