【问题标题】:Change dialog size in Android Facebook SDK在 Android Facebook SDK 中更改对话框大小
【发布时间】:2012-11-04 19:24:41
【问题描述】:

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

【问题讨论】:

    标签: android facebook dialog


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案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"/>
      

      【讨论】:

      • 我不确定它现在是否仍然有效,Lollipop 5.0.2 上的 facebook SDK 3.21.1 不透明
      • 有趣。这可能已经改变,具体取决于 FB 在其新 SDK 中使用的主题。我认为您可能需要对主题进行一些工作,但目前还不能确定。当我在我的应用程序中更新 fb SDK 时,我肯定会知道。同时,如果您找到解决方案,请不要犹豫分享 ;-)
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多