最近发布的新的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"
/>
Run Code Online (Sandbox Code Playgroud)
它在SDK 3.x上的外观(在OnePlus One上截图,运行CM11S):

用于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"
/>
Run Code Online (Sandbox Code Playgroud)
它在SDK 4.0上的外观(在Genymotion Nexus 5上运行的屏幕截图,运行未经修改的4.4.4):

它在SDK 4.0.1(相同的Genymotion Nexus 5)上的外观如何:

登录按钮已更新,可以正确测量其大小.
相关文章:
为了支持不同的屏幕尺寸,在登录按钮上方,我有一个ViewPagerIndicator和一个ViewPager,它配置为占用定位具有定义高度的元素后剩余的所有可用垂直空间.