Кнопка + 1 перестала работать, всегда серая
Обновление: я узнал, что это моя проблема https://code.google.com/p/google-plus-platform/issues/detail?id=704
Некоторое время назад я реализовал кнопку +1 в своем приложении в качестве предпочтения. Он работал хорошо до нескольких недель, и теперь кнопка всегда серая. Если я прикоснусь к нему, я получу "загрузочный" круг, и он никогда не перестанет вращаться.
Я отладил свое приложение и убедился, что вызывается initialize.
Кто-нибудь еще испытывает проблемы с это?
Спасибо.
Мой код предпочтения:
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"/>
2 ответа:
Так что у меня возникли проблемы с этим, потому что значок Google plus one останется серым, как вы и сказали, пока представление предпочтений не будет перезагружено (т. е. навигация в другом месте, а затем возвращение, прокрутка предпочтений с экрана, а затем обратно и т. д.). Проблема в том, что вам нужно позвонить в mPlusOneButton.инициализируйте () в функции onResume () действия, имеющего кнопку Plus One. Так что в принципе, я просто сделал публичный метод в предпочтении, которое делает инициализируйте вызов, а затем вызовите его в функции 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); } }