為 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 文件