自preference无法点击 [英] Custom preference not clickable

查看:278
本文介绍了自preference无法点击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我添加了一个自定义的preference到我的项目(​​低于code)。我将它添加到我的preferences XML使用自定义widgetLayout:

 < w.PlusOne preference
    机器人:标题=率应用
    机器人:关键=自定义
    机器人:widgetLayout =@布局/ plusone_ preF/>
 

preference布局的xml:

 < XML版本=1.0编码=UTF-8&GT?;
< com.google.android.gms.plus.PlusOneButton
的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
的xmlns:加=htt​​p://schemas.android.com/apk/lib/com.google.android.gms.plus
机器人:ID =@ + ID / plus_one_button
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_gravity =center_vertical
机器人:可聚焦=假
加:大小=标准/>
 

我看到在布局的布局和按钮正常工作。唯一的问题是,preference无法点击。喜欢它的背后隐藏着什么东西。

在如何使点击任何想法?

如果我想补充一个普通preference(无小部件的布局),它工作正常。

感谢。

 公共类PlusOne preference扩展preference {

私人PlusClient mPlusClient = NULL;

公共PlusOne preference(上下文的背景下){
    超(上下文);

}


公共PlusOne preference(上下文的背景下,ATTRS的AttributeSet){
    超(背景下,ATTRS);
}

公共PlusOne preference(上下文的背景下,ATTRS的AttributeSet,诠释defStyle){
    超(背景下,ATTRS,defStyle);
}

公共无效setPlusClient(PlusClient plusClient){
    mPlusClient = plusClient;
}



@覆盖
保护无效onBindView(查看视图){
    super.onBindView(视图);
    // mPlusOneButton =
    PlusOneButton plusOneButton =(PlusOneButton)view.findViewById(R.id.plus_one_button);
    plusOneButton.initialize(mPlusClient,SettingsActivity.URL,SettingsActivity.PLUS_ONE_REQUEST_ code);
}
  }
 

解决方案

在布局/ plusone_ pref.xml集机器人:可调焦=假为您的按钮

I added a custom preference to my project (code below). I added it to my preferences xml with a custom widgetLayout:

<w.PlusOnePreference 
    android:title="Rate App"
    android:key="custom"
    android:widgetLayout="@layout/plusone_pref"/>

Preference layout 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" />

I see the layout and the button in the layout works fine. The only problem is that the preference isn't clickable. Like it's hidden behind something.

Any ideas on how to make it clickable?

If I add a regular Preference (without a widget layout) it works fine.

Thanks.

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);
}
  }

解决方案

in layout/plusone_pref.xml set android:focusable="false" for your Button

这篇关于自preference无法点击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆