2016-06-28 4 views
1

레이아웃. 나는 각 목록보기 항목으로 assocatied 패딩을 증가도 어떻게하는 방법을 알아낼 수 없습니다,사용자 정의 기본 헤더는 내가 AppCompatDelegate에 의존 안드로이드 스튜디오 (<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; 
    } 
} 
이 메소드를 오버라이드 (override)

(좀 더 당신은 당신이 패딩, 마진, backgroundColor로, 등등 ...

그럼 대신 CustomPreferenceCategory를 사용하여 설정할 수 있습니다 원하는 경우 PreferenceCategory

물론 Preference으로 동일한 작업을 수행 할 수 있습니다 (사용자 정의 헤더 또는 사용자 정의 목록 항목이 필요한지 잘 모름 - 카테고리는 헤더이고 기본 설정은 일반 목록 항목 임)