Android Facebook SDK のダイアログ サイズを変更するにはどうすればよいですか? ほぼ全画面表示で、スマートフォンでは問題ありませんが、タブレットでは問題ありません。テーブルと電話で異なるダイアログ サイズを使用したいと考えています。
3 に答える
Android Facebook 3.0 SDKでは、マニフェストのLoginActivityActivity宣言が次のようになっていることを確認してください。
<activity android:name="com.facebook.LoginActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
このようにテーマを設定すると、Facebookアクティビティはフルスクリーンアクティビティとして開始されますが、アクティビティ全体が透過的であるため、ダイアログのみが表示されているように見えます。
これは他の何よりもハックだと思いますが、FacebookがScrumptiousサンプルプロジェクトでこれを行う方法です。
*****編集*****
Facebook SDKのバージョン4.xを使用している場合は、AndroidManifestのFacebookActivityのテーマを次のようにオーバーライドして置き換える必要があります::
<activity
tools:replace="android:theme"
android:name="com.facebook.FacebookActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
Fragment でそれまたは必要な部分をインスタンス化してみませんか?
Webview Fragments http://developer.android.com/reference/android/webkit/WebViewFragment.htmlのドキュメントは次のとおりです。
現在、Facebook には、Picker Fragment などのネイティブ フラグメントが SDK に統合されています: https://developers.facebook.com/docs/reference/android/3.0/PickerFragment
これは、Web フラグメントを に配置すると次のようになりますLayout
。
<fragment
android:id="@+id/webFragment"
android:layout_width="150dip"
android:layout_height="match_parent"
android:name="my.proj.WebViewer"></fragment >
タブレットに必要なものを断片化できるはずです。Justin Breitfeller がこのコードを stackoverflow に投稿しました: コードで 7 インチ Android タブレットを検出する方法
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
float widthInInches = metrics.widthPixels / metrics.xdpi;
float heightInInches = metrics.heightPixels / metrics.ydpi
double sizeInInchesSquared = (widthInInches * widthInInches) + (heightInInches * heightInInches);
//0.5" buffer for 7" devices (6.5^2 = 42.25) (7.5^2 = 56.25)
boolean is7inchTablet = sizeInInchesSquared >= 42.25 && sizeInInchesSquared <= 56.25;
過去にこれを使用して、過去に7インチ以上の画面用に別のビューを効果的に作成しました。次に、別のフラグメントを使用して別のレイアウトを呼び出したり、タイプに基づいて画面に効果的にフィットするようにフラグメントのサイズを動的に変更したりできます。
具体的に何をしようとしているのか、もう少し詳しく教えていただけると助かります。
誰かが気にしている場合 - Facebook はこれをそのままではサポートしていません。childofthehornと同様の計算を使用して、デバイスがタブレットかどうかを確認し、手動でサイズを変更するなど、いくつかの特殊なケースでコードをハックする必要があります。