我在项目中添加了自定义首选项(下面的代码)。我使用自定义widgetLayout将其添加到我的首选项xml中:
<w.PlusOnePreference
android:title="Rate App"
android:key="custom"
android:widgetLayout="@layout/plusone_pref"/>
首选项布局xml:
<?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"
plus:size="standard" />
我看到布局和布局中的按钮工作正常。唯一的问题是首选项不可点击。就像隐藏在某些东西背后一样。
有关如何使其可点击的任何想法?
如果我添加常规首选项(没有小部件布局),它可以正常工作。
感谢。
public class PlusOnePreference extends Preference {
private PlusClient mPlusClient = null;
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);
}
public void setPlusClient(PlusClient plusClient) {
mPlusClient = plusClient;
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
//mPlusOneButton =
PlusOneButton plusOneButton = (PlusOneButton)view.findViewById(R.id.plus_one_button);
plusOneButton.initialize(mPlusClient, SettingsActivity.URL, SettingsActivity.PLUS_ONE_REQUEST_CODE);
}
}
答案 0 :(得分:8)
在layout / plusone_pref.xml中为你的Button设置android:focusable =“false”
答案 1 :(得分:4)
将Pskink的回答与Ran的评论结合起来:
ViewGroup
(例如*布局),请使用android:descendantFocusability="blocksDescendants"
View
,请使用android:focusable="false"
答案 2 :(得分:0)
首选项没有可点击的属性,但有onClick()
方法。尝试android:selectable
。