Nic*_*ick 5 android preference preferenceactivity
我有一个自定义类,它扩展了我正在与PreferenceActivity一起使用的Preference.
当我尝试调整我的Preference使用的布局中的高度(使用静态layout_height或使用wrap_content)时,它始终显示在Preference Activity中的统一高度单元格中 - 与所有"普通"首选项默认为相同的大小.
有没有一种方法可以使用不同的layout_height呈现给定的首选项.
我查看了与首选项相关的API演示,但我没有看到任何与我正在尝试的内容相匹配的内容.
您可以getView(View, ViewGroup)在首选项中覆盖.然后发送new LayoutParams到getView().我用自定义的CheckBoxPreference尝试了它.效果很好.
import android.content.Context;
import android.preference.CheckBoxPreference;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView.LayoutParams;
public class CustomCheckBoxPreference extends CheckBoxPreference {
public CustomCheckBoxPreference(final Context context, final AttributeSet attrs,
final int defStyle) {
super(context, attrs, defStyle);
}
public CustomCheckBoxPreference(final Context context, final AttributeSet attrs) {
super(context, attrs);
}
public CustomCheckBoxPreference(final Context context) {
super(context);
}
@Override
public View getView(final View convertView, final ViewGroup parent) {
final View v = super.getView(convertView, parent);
final int height = android.view.ViewGroup.LayoutParams.MATCH_PARENT;
final int width = 300;
final LayoutParams params = new LayoutParams(height, width);
v.setLayoutParams(params );
return v;
}
Run Code Online (Sandbox Code Playgroud)
}
请注意为View使用正确的LayoutParams,否则可能会遇到类强制转换异常.
| 归档时间: |
|
| 查看次数: |
2057 次 |
| 最近记录: |