3

如何更改 Android Facebook SDK 的对话框大小?它几乎是全屏的,对手机来说可以,但对平板电脑来说不行。我想为表格和电话设置不同的对话框大小。

4

3 回答 3

2

为什么不在片段中实例化它或您想要的片段?

这是 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" 及以上的屏幕制作不同的视图。然后,您可以使用不同的片段调用不同的布局,或者让片段动态改变大小以有效地根据类型适应屏幕。

如果您向我们提供有关您正在尝试做什么的更多详细信息,那将会很有帮助。

于 2012-11-16T05:13:12.633 回答
2

在 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"/>
于 2013-01-31T01:04:37.243 回答
1

如果有人在乎 - Facebook 不支持开箱即用。您必须在某些特殊情况下破解代码,使用类似于 childofthehorn 的计算来检查设备是否为平板电脑,然后手动调整其大小。

于 2012-11-24T05:25:31.660 回答