如何更改 Android Facebook SDK 的对话框大小?它几乎是全屏的,对手机来说可以,但对平板电脑来说不行。我想为表格和电话设置不同的对话框大小。
3 回答
为什么不在片段中实例化它或您想要的片段?
这是 Webview 片段的文档 http://developer.android.com/reference/android/webkit/WebViewFragment.html
现在 Facebook 确实在他们的 SDK 中集成了一些原生 Fragment,例如 Picker Fragment: https ://developers.facebook.com/docs/reference/android/3.0/PickerFragment
当您将 webfragment 放入您的Layout
:
<fragment
android:id="@+id/webFragment"
android:layout_width="150dip"
android:layout_height="match_parent"
android:name="my.proj.WebViewer"></fragment >
您应该能够对平板电脑所需的内容进行碎片化。Justin Breitfeller 在 stackoverflow 上发布了这段代码: How to detect 7" Android tablet in code
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" 及以上的屏幕制作不同的视图。然后,您可以使用不同的片段调用不同的布局,或者让片段动态改变大小以有效地根据类型适应屏幕。
如果您向我们提供有关您正在尝试做什么的更多详细信息,那将会很有帮助。
在 Android Facebook 3.0 SDK 中,确保清单中的 LoginActivity Activity 声明如下所示:
<activity android:name="com.facebook.LoginActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
像这样设置主题仍然会将 facebook 活动作为全屏活动启动,但整个活动是透明的,因此看起来只出现一个对话框。
我想这更像是一种 hack,但这就是 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"/>
如果有人在乎 - Facebook 不支持开箱即用。您必须在某些特殊情况下破解代码,使用类似于 childofthehorn 的计算来检查设备是否为平板电脑,然后手动调整其大小。