为 Facebook 登录创建自己的自定义按钮

首次添加 Facebook 登录/注册后,按钮看起来像:

StackOverflow 文档

大多数情况下,它与你的应用程序的设计规格不匹配。以下是如何自定义它:

<FrameLayout
    android:layout_below="@+id/no_network_bar"
    android:id="@+id/FrameLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <com.facebook.login.widget.LoginButton
        android:id="@+id/login_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone" />

    <Button
        android:background="#3B5998"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:id="@+id/fb"
        android:onClick="onClickFacebookButton"
        android:textAllCaps="false"
        android:text="Sign up with Facebook"
        android:textSize="22sp"
        android:textColor="#ffffff" />
</FrameLayout>

只需将原始的 com.facebook.login.widget.LoginButton 包裹成 FrameLayout 并使其可见性消失。

接下来,在同一个 FrameLayout 中添加自定义按钮。我添加了一些示例规格。你可以随时为 facebook 按钮创建自己的可绘制背景,并将其设置为按钮的背景。

我们做的最后一件事就是将我的自定义按钮上的点击转换为点击 facecbook 按钮:

//The original Facebook button
LoginButton loginButton = (LoginButton)findViewById(R.id.login_button);

//Our custom Facebook button
fb = (Button) findViewById(R.id.fb);

public void onClickFacebookButton(View view) {
    if (view == fb) {
        loginButton.performClick();
    }
}

大! 现在按钮看起来像这样:

StackOverflow 文档