为什么我的按钮没有显示在布局中?

时间:2018-11-23 06:29:47

标签: android android-layout

我一直在进行带有列表视图的选项卡式活动。我一直试图在列表视图下放置一个按钮,但是当我在手机上运行时,该按钮没有显示。

我的片段布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.siscaproject.sisca.Fragment.RegisterFragment">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="7dp">

        <RelativeLayout
            android:id="@+id/rl_total_data"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorRedPrimary"
            android:padding="8dp">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:text="@string/item_detected"
                android:textColor="#fff" />

            <TextView
                android:id="@+id/tv_total_data"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_marginEnd="7dp"
                android:hint="10 items detected"
                android:textColor="#fff" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/rl_data"
            android:layout_below="@id/rl_total_data"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ListView
                android:id="@+id/lv_data"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true" />

        </RelativeLayout>

        <Button
            android:id="@+id/btn_register"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentStart="true"
            android:background="@color/colorRedPrimary"
            android:text="@string/register_all_item"
            android:textAllCaps="false"
            android:textColor="#fff" />

    </RelativeLayout>

</FrameLayout>

我在Android Studio中的布局预览

The Layout preview in my android studio

在手机上运行时的布局(我使用的是华硕Zenfone 5)

When i run it on my phone

我不确定我做错了什么,实际上我已将按钮更改为浮动按钮,但是布局中仅显示了一半的按钮。 (另外,我无法滚动布局)

更新 我已经解决了,问题出在选项卡式活动布局中。 我使用约束布局作为父级,将其更改为相对布局,并且效果很好

5 个答案:

答案 0 :(得分:1)

尝试此代码。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.siscaproject.sisca.Fragment.RegisterFragment">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="7dp">

    <RelativeLayout
        android:id="@+id/rl_total_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorRedPrimary"
        android:padding="8dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:text="@string/item_detected"
            android:textColor="#fff" />

        <TextView
            android:id="@+id/tv_total_data"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginEnd="7dp"
            android:hint="10 items detected"
            android:textColor="#fff" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rl_data"
        android:layout_below="@id/rl_total_data"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ListView
            android:id="@+id/lv_data"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:layout_above="@+id/btn_register" />

        <Button
            android:id="@+id/btn_register"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentStart="true"
            android:background="@color/colorAccent"
            android:text="submit"
            android:textAllCaps="false"
            android:textColor="#fff" />

    </RelativeLayout>


</RelativeLayout>

答案 1 :(得分:1)

尝试一下

根据您的喜好更改颜色!

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="7dp">

        <RelativeLayout
            android:id="@+id/rl_total_data"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorAccent"
            android:padding="8dp">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:text="detected"
                android:textColor="#fff" />

            <TextView
                android:id="@+id/tv_total_data"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_marginEnd="7dp"
                android:hint="10 items detected"
                android:textColor="#fff"
                android:layout_marginRight="7dp" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/rl_data"
            android:layout_below="@id/rl_total_data"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ListView
                android:id="@+id/lv_data"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:layout_alignParentLeft="true" />

        </RelativeLayout>

        <Button
            android:id="@+id/btn_register"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentStart="true"
            android:background="@color/colorPrimary"
            android:text="helo"
            android:textAllCaps="false"
            android:textColor="#fff"
            android:layout_alignParentLeft="true" />

    </RelativeLayout>

</FrameLayout>

答案 2 :(得分:0)

这是因为按钮上方的视图中具有“匹配父级”属性。因此,由于在其顶部的视图已设置为占据父级的所有空间,因此不会显示您的按钮。

请参见下面的代码修改

<FrameLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.siscaproject.sisca.Fragment.RegisterFragment">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="7dp">

        <RelativeLayout
            android:id="@+id/rl_total_data"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorRedPrimary"
            android:padding="8dp">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:text="@string/item_detected"
                android:textColor="#fff" />

            <TextView
                android:id="@+id/tv_total_data"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_marginEnd="7dp"
                android:hint="10 items detected"
                android:textColor="#fff" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/rl_data"
            android:layout_below="@id/rl_total_data"
            android:layout_width="match_parent"
           android:layout_height="wrap_content">

            <ListView
                android:id="@+id/lv_data"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true" />

        </RelativeLayout>

        <Button
            android:id="@+id/btn_register"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentStart="true"
            android:background="@color/colorRedPrimary"
            android:text="@string/register_all_item"
            android:textAllCaps="false"
            android:textColor="#fff" />

    </RelativeLayout>

</FrameLayout>

您可以按照本文中的说明尝试使用weightSum。What is android:weightSum in android, and how does it work? 它为您划分父级布局提供了更多的控制权

答案 3 :(得分:0)

尝试使用此代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7dp">

<RelativeLayout
    android:id="@+id/rl_total_data"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    android:padding="8dp">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:text="Items Detected"
        android:textColor="#fff" />

    <TextView
        android:id="@+id/tv_total_data"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginEnd="7dp"
        android:hint="10 items detected"
        android:textColor="#fff" />
</RelativeLayout>



    <ListView
        android:id="@+id/lv_data"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/btn_register"
        android:layout_below="@+id/rl_total_data"/>


<Button
    android:id="@+id/btn_register"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@color/colorAccent"
    android:text="Register"
    android:textAllCaps="false"
    android:textColor="#fff" />

答案 4 :(得分:0)

尝试

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.siscaproject.sisca.Fragment.RegisterFragment">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="7dp"
    android:orientation="vertical">

    <RelativeLayout
        android:id="@+id/rl_total_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorRedPrimary"
        android:padding="8dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:text="@string/item_detected"
            android:textColor="#fff" />

        <TextView
            android:id="@+id/tv_total_data"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_marginEnd="7dp"
            android:hint="10 items detected"
            android:textColor="#fff" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rl_data"
        android:layout_below="@id/rl_total_data"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <ListView
            android:id="@+id/lv_data"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true" />

    </RelativeLayout>
    <Button
        android:id="@+id/btn_register"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:background="@color/colorRedPrimary"
        android:text="@string/register_all_item"
        android:textAllCaps="false"
        android:textColor="#fff" />
</LinearLayout>