如何让Button找到UI的底部?

时间:2013-07-25 06:01:10

标签: android android-layout android-button

为了让Button btnClose找到用户界面的底部,我必须添加控件<TextView android:id="@+id/tvOnlyTake" ...并设置android:layout_weight="1"
我不认为这是一个好方法,你能给我一些建议吗?谢谢!

BTW,如果我移动android:id="@+id/tvOnlyTake"并为按钮btnClose设置android:layout_weight="1",该按钮将填入底部空格并成为一个大按钮

<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>

2 个答案:

答案 0 :(得分:1)

对您自己的代码的简单解决方案只是尝试用layout.xml文件替换整个xml来测试它

<?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>

答案 1 :(得分:0)

不使用表格布局使用框架布局参考此示例,您将获得我希望的解决方案 请在主要布局下选择一个相对布局。将其高度和宽度设置为填充父级,并将其重力设置为底部,并将任何textview或任何按钮放入其中。

 <?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>