7

PreferenceActivity と組み合わせて使用​​している Preference を拡張するカスタム クラスがあります。

Preference が使用しているレイアウトの高さを調整しようとすると (静的な layout_height または wrap_content を使用して)、常に Preference アクティビティの均一な高さのセルに表示されます。これは、すべての「通常の」設定のデフォルトと同じサイズです。 .

特定の設定を別の layout_height で提示する方法はありますか。

設定に関連する API デモを見てきましたが、私がやろうとしていることと一致するものは何もありません。

4

2 に答える 2

7

プリファレンスでオーバーライドできますgetView(View, ViewGroup)。に送信new LayoutParamsgetView()ます。カスタマイズした 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;
}

}

ビューに正しい LayoutParams を使用するように注意してください。そうしないと、クラス キャスト例外が発生する可能性があります。

于 2012-01-12T22:11:11.607 に答える