如何让我的布局成为我活动的底部

时间:2014-10-14 08:37:53

标签: android xml

你好我正在开发一个ios风格的应用程序,它的底部布局很好我似乎无法将这个布局置于底部

这是我的代码:

    <?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="match_parent"
    android:orientation="vertical"
    android:weightSum="10"
    tools:context=".MyActivity"
    tools:ignore="UselessLeaf,ContentDescription" >


    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="5dp"
        android:layout_weight="7" >
    </android.support.v4.view.ViewPager>

    <com.viewpagerindicator.CirclePageIndicator
        android:id="@+id/pagerIndicator"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="0.5"
        android:padding="3dp" />



        <LinearLayout
            android:id="@+id/layout11"
            android:layout_width="match_parent"
            android:layout_height="30dip"
            android:background="@drawable/dock"
             android:layout_gravity="bottom"
            android:orientation="horizontal" >

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:gravity="center|bottom"
                tools:ignore="NestedWeights" >

                <ImageView
                    android:id="@+id/dial"
                    android:layout_width="wrap_content"
                    android:layout_height="10dp"
                    android:layout_gravity="center_horizontal|center"
                    android:src="@drawable/dialer"
                    tools:ignore="ContentDescription" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_gravity="bottom"
                android:layout_weight="1" >

                <ImageView
                    android:id="@+id/back"
                    android:layout_width="wrap_content"
                    android:layout_height="10dp"
                    android:layout_gravity="center_horizontal|center"
                    android:src="@drawable/back" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_gravity="center_horizontal|center"
                android:layout_weight="1" >

                <ImageView
                    android:id="@+id/sms"
                    android:layout_width="wrap_content"
                    android:layout_height="10dp"
                    android:layout_gravity="center_horizontal|center"
                    android:src="@drawable/mms" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_gravity="center_horizontal|center"
                android:layout_weight="1" >

                <ImageView
                    android:id="@+id/music"
                    android:layout_width="wrap_content"
                    android:layout_height="10dp"
                    android:src="@drawable/music"
                    android:visibility="gone" />
            </LinearLayout>
        </LinearLayout>





</LinearLayout>

这就是现在的样子: IMAGE

我想要页面底部的按钮

我做错了什么?

请让我知道

感谢一百万次

克里斯

4 个答案:

答案 0 :(得分:1)

正如Hesam的回答指出,当您在第二个布局中使用layout_weight属性时,您应该使用layout_height=0dp ...如果您使用的是Android Studio,那么它应该会给您一个警告它。但是,我想补充一点,你的答案是整个布局文件还有很大的改进空间......我的意思是很多!你有我称之为无用嵌套布局的spaguetti。提一些

  1. 第二个LinearLayout绝对无用......它是空的,不需要
  2. LinearLayout可以轻松转换为RelativeLayout,然后使用layout_alignParentBottom=true将最底部的子视图推到底部,最后将所有其他子项堆叠在此底部使用layout_above
  3. 查看
  4. 你有很多嵌套LinearLayout和一个孩子......恕我直言,这是没用的
  5. 你有很多嵌套RelativeLayout只有一个孩子...恕我直言这也没用了
  6. 我可以永远继续,但你真的应该解决这些嵌套的布局问题,因为你在你的UI中添加了很多不必要的开销......这是非常沉重的人

    基于添加的屏幕截图的进一步推荐

    这就是我的建议

    • 我建议使用RelativeLayout作为根/顶部布局
    • 添加ListView以显示所有这些图片/图标,并将layout_alignParentTop=true设为layout_height=wrap_content
    • 然后在水平方向下方添加LinearLayout以显示按钮

答案 1 :(得分:0)

当你使用android:layout_weight =“1”时,android:layout_width或android:layout_height应该等于0dp。在你的情况下,第二个线性布局应该是android:layout_height =“0dp”

答案 2 :(得分:0)

您可以使用RelativeLayout作为父级,然后使用alignParentBottom =“true”但是我不完全确定您要实现的目标,即它应该是什么样的。

答案 3 :(得分:0)

您可以使用RelativeLayout而不是LinearLayout作为根布局,然后设置android:layout_alignParentBottom =&#34; true&#34;到底部布局