HelloCW
HelloCW

Reputation: 2255

How can I make a Button locate the bottom of UI?

In order to make the Button btnClose locate the bottom of UI, I have to add the control <TextView android:id="@+id/tvOnlyTake" ... and set android:layout_weight="1"
I don't think it's a good way, coul you give me some suggestion? Thanks!

BTW, If I move android:id="@+id/tvOnlyTake" and set android:layout_weight="1" for the Button btnClose , the button will fill in the bottom space and become a large button

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/border_ui" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="" />

        <TextView
            android:id="@+id/tvPath"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />
    </TableRow>


    <TextView
        android:id="@+id/tvOnlyTake"
        android:layout_width="wrap_content"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:text="" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center" >

     <Button
        android:id="@+id/btnClose"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        style="@style/myTextAppearance"
        android:text="@string/myreturn" />

    </LinearLayout>

</TableLayout>

Upvotes: 0

Views: 250

Answers (2)

dinesh sharma
dinesh sharma

Reputation: 3332

Simple solution on your own code just try to replace this whole xml with your layout.xml file to test it

<?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="match_parent"
    android:orientation="vertical" >

   <TableLayout
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:layout_weight="1" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="" />

        <TextView
            android:id="@+id/tvPath"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />
    </TableRow>


    <TextView
        android:id="@+id/tvOnlyTake"
        android:layout_width="wrap_content"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:text="" />

</TableLayout>

   <LinearLayout
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:gravity="center" >

       <Button
           android:id="@+id/btnClose"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="center" />
   </LinearLayout>

</LinearLayout>

Upvotes: 1

Sujeeth Damodharan
Sujeeth Damodharan

Reputation: 477

Instead of using table layout use frame layout refer this example you will get solution i hope please take one Relative layout under your main layout . Set its hight and width as fill parent and set its gravity as bottom and put any textview or any button you want in it .

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

    <RelativeLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:gravity="bottom">

        <Button android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:text="Bottom Gravity" />

    </RelativeLayout>

    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <Button android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:text="Without Gravity" />

    </LinearLayout>

</FrameLayout>

Upvotes: 0

Related Questions