当我在XML中使用layout_toStartOf和layout_toEndOf时,Facebook登录按钮消失了

时间:2017-07-20 12:09:05

标签: android xml facebook-graph-api layout

我有一个描述LoginActivity布局的XML文件

<com.google.android.gms.common.SignInButton
    android:id="@+id/btnGoogle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/btnLogIn"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="@dimen/space_under_views"
    android:layout_alignStart="@id/etEmail"
    android:layout_alignEnd="@id/etEmail">
</com.google.android.gms.common.SignInButton>

<com.facebook.login.widget.LoginButton
    android:id="@+id/btnFacebook"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/btnGoogle"
    android:layout_marginBottom="@dimen/space_under_views"
    android:layout_centerHorizontal="true"
    android:layout_toStartOf="@id/btnGoogle"
    android:layout_toEndOf="@id/btnGoogle"/>

问题是Facebook按钮不会显示,除非我删除以下行:

android:layout_toStartOf="@id/btnGoogle"
android:layout_toEndOf="@id/btnGoogle"

如果删除这些按钮,则按钮未正确对齐。我的目标是将Facebook登录按钮的大小设置为Google登录按钮的大小。 我做错了什么?

3 个答案:

答案 0 :(得分:0)

如果您将btnFacebook作为layout_toStartOf="@id/btnGoogle和。{ layout_toEndOf="@id/btnGoogle,然后想想,

Facebook按钮应该是在谷歌按钮的开头还是在结束时?

您可以在这里使用

android:layout_toRightOf="@id/btnGoogle"
android:layout_alignBaseline="@id/btnGoogle"

根据您的选择左右 并且您必须使用RelativeLayout作为父布局。

答案 1 :(得分:0)

试试这个

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/btnLogIn"
    android:orientation="vertical">

    <com.google.android.gms.common.SignInButton
        android:id="@+id/btnGoogle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@id/etEmail"
        android:layout_alignStart="@id/etEmail"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="@dimen/space_under_views"/>

    <com.facebook.login.widget.LoginButton
        android:id="@+id/btnFacebook"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="@dimen/space_under_views" />


</LinearLayout>

 <RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/btnLogIn"
    android:layout_marginLeft="80dp"
    android:layout_marginRight="80dp"
    android:orientation="vertical">

    <com.google.android.gms.common.SignInButton
        android:id="@+id/btnGoogle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@id/etEmail"
        android:layout_alignStart="@id/etEmail"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="@dimen/space_under_views" />

    <com.facebook.login.widget.LoginButton
        android:id="@+id/btnFacebook"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/btnGoogle"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="@dimen/space_under_views" />


</RelativeLayout>

答案 2 :(得分:0)

我发现了我的错误:

而不是:

125,126,127,128,129,130,131,132,133,134,135

1,2,3,4,5,6,7,8,9,10,11

我必须使用:

android:layout_toStartOf="@id/btnGoogle"
android:layout_toEndOf="@id/btnGoogle"

这解决了问题