2016-06-28 1 views
1

をレイアウト。しかし、私はそれぞれのリストビュー項目にassocatiedパディングを向上させる方法を見つけ出すことはできませんカスタマイズ優先ヘッダーは、私はAppCompatDelegateに依存しAndroidStudio(<em>新規</em>、<em>活動</em>、<em>設定アクティビティ</em>)から生成SettingsActivityを使用してい

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    LinearLayout root = 
      (LinearLayout) findViewById(android.R.id.list).getParent().getParent().getParent(); 
    Toolbar toolbar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.toolbar, root, false); 
    root.addView(toolbar, 0); 
    toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      finish(); 
     } 
    }); 

    ListView listView = getListView(); 
    listView.setDivider(ContextCompat.getDrawable(this, R.drawable.settings_divider)); 
    listView.setDividerHeight(1); 

    setupActionBar(); 
} 

どちらもどのように:私は、ツールバーを追加すると、次のように表示機能優先のヘッダに使用するリストビューにカスタム分周器を設定することに成功していませんアイコンとプリファレンスヘッダータイトルの間隔を広げます。スタイルを使用することもカスタムレイアウトを渡すことも可能ですか?

enter image description here

答えて

1

あなたはPreferenceCategoryをオーバーライドするカスタムレイアウトを作成することができます。このような例:

public class CustomPreferenceCategory extends PreferenceCategory { 

    public CustomPreferenceCategory(Context context) { 
     super(context); 
    } 

    public CustomPreferenceCategory(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public CustomPreferenceCategory(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    protected View onCreateView(ViewGroup parent) { 
     View view = super.onCreateView(parent); 

     return view; 
    } 

    @Override 
    public View getView(View convertView, ViewGroup parent) { 
     final View view = super.getView(convertView, parent); 
     view.setPadding(view.getPaddingLeft(), view.getPaddingTop()*2, view.getPaddingRight(), 10); 

     TextView textView = (TextView) view.findViewById(android.R.id.title); 
     textView.setGravity(Gravity.BOTTOM); 

     return view; 
    } 
} 

あなたは、パディング、マージン、背景色などを設定することができますしたい場合は、これらのメソッド(およびいくつかのより多くをオーバーライドすることで...

その後PreferenceCategory

の代わりに CustomPreferenceCategoryを使用

もちろん、Preferenceでも同じことをすることができます(カスタムヘッダーやカスタムリスト項目が必要かどうかわかりませんでした。カテゴリはヘッダーで、プリファレンスは通常のリスト項目です)

0

あなたのリストはgetViewの方法の中で独自のカスタムビューを膨らませます。あなたの見解では、コンテンツにパディングを設定します。 Much like this

またはこのソリューションを使用できます。https://stackoverflow.com/a/5309871/6507689

関連する問題

 関連する問題