【发布时间】:2012-11-04 19:24:41
【问题描述】:
如何更改 Android Facebook SDK 的对话框大小?它几乎是全屏的,对手机来说可以,但对平板电脑来说不行。我想为表格和电话设置不同的对话框大小。
【问题讨论】:
如何更改 Android Facebook SDK 的对话框大小?它几乎是全屏的,对手机来说可以,但对平板电脑来说不行。我想为表格和电话设置不同的对话框大小。
【问题讨论】:
为什么不在片段中实例化它或您想要的片段?
这是 Webview Fragments 的文档 http://developer.android.com/reference/android/webkit/WebViewFragment.html
现在 Facebook 确实将一些原生 Fragment 集成到他们的 SDK 中,例如 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 的计算来检查设备是否为平板电脑,然后手动调整其大小。
【讨论】: