更新:我发现这是我的问题https://code.google.com/p/google-plus-platform/issues/detail?id=704
前段时间我在我的应用中实施了+1按钮作为首选项。 它运作良好,直到几周,现在按钮总是灰色。如果我触摸它,我会得到“加载”圆圈,它永远不会停止旋转。
我调试了我的应用并确保调用了初始化。
是否有其他人遇到过问题?
感谢。
我的偏好代码:
public class PlusOnePreference extends Preference {
public PlusOnePreference(Context context) {
super(context);
}
public PlusOnePreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public PlusOnePreference(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
PlusOneButton plusOneButton = (PlusOneButton)view.findViewById(R.id.plus_one_button);
plusOneButton.initialize(URL, PLUS_ONE_REQUEST_CODE);
}
}
我的偏好布局:
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.gms.plus.PlusOneButton xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:plus="http://schemas.android.com/apk/lib/com.google.android.gms.plus"
android:id="@+id/plus_one_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:focusable="false"
android:descendantFocusability="blocksDescendants"
plus:size="standard"
plus:annotation="inline"/>
答案 0 :(得分:2)
所以我遇到了这个问题,因为Google加上一个图标会像你说的那样保持灰色,直到重新加载首选项视图(即导航到其他地方然后再回来,让首选项滚出屏幕然后返回,等等)。问题是因为您需要在具有Plus One Button的活动的onResume()函数中调用mPlusOneButton.initialize()。所以基本上,我只是在首选项中创建了一个public方法,进行初始化调用,然后在onResume()函数中调用它。
活动:
Preference preference;
@Override
public void onResume()
{
super.onResume();
if(preference!= null)
{
preference.reloadGooglePlusOneButton();
}
}
在偏好中:
public void reloadGooglePlusOneButton()
{
if(mPlusOneButton != null)
{
mPlusOneButton.initialize(URL, PLUS_ONE_REQUEST_CODE);
}
}
答案 1 :(得分:1)
Google Play Services 4.1似乎已修复此问题。