最近发布的新版Facebook SDK for Android (v4.0)导致我正在使用的自定义LoginButton表现出奇怪的行为。下面比较了在不同SDK版本中相同XML的呈现方式。
问题似乎是SDK 4.x中的FB图标不能正确地拉伸以适应自定义大小的按钮,而在4.0.1中android:layout_height
属性完全被忽略。
我的问题是如何使按钮在SDK 4.x中显示与在SDK 3.x中一样? XML和Java解决方案均可接受。
SDK 3.x的XML:
<com.facebook.widget.LoginButton
android:background="@color/com_facebook_blue"
android:id="@+id/login_btn_facebook"
android:layout_width="225dp"
android:layout_height="50dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:layout_gravity="center"
android:onClick="onFacebookLoginClick"
/>
在SDK 3.x上的外观(在运行CM11S的OnePlus One上拍摄的屏幕截图):
SDK 4.x的XML(按钮包已更名+必须稍微更改宽度和字体才能匹配g+按钮):
<com.facebook.login.widget.LoginButton
android:background="@color/com_facebook_blue"
android:id="@+id/login_btn_facebook"
android:layout_width="221dp"
android:layout_height="50dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:layout_gravity="center"
android:textSize="7pt"
android:onClick="onFacebookLoginClick"
/>
如何在SDK 4.0上看起来(屏幕截图拍摄于运行未修改的4.4.4 Genymotion Nexus 5):
如何在SDK 4.0.1上看起来(同一Genymotion Nexus 5):
附加信息
- 从4.0 -> 4.0.1 SDK变更日志中摘录:
登录按钮已更新以正确测量其大小。
相关帖子:
为支持不同的屏幕尺寸,在登录按钮上方我有一个ViewPagerIndicator和一个ViewPager,它被配置为在定位具有定义高度的元素后占用所有可用垂直空间。