यहां एक और तरीका है: हेडर को टैब से अलग करने के लिए। थोड़ा जटिल, हां, लेकिन लाभ हैं:
- यह आपको सामान्य टैब शैली को परिभाषित करने की अनुमति देता है;
- किसी भी बटन का समर्थन करता है।
इस तस्वीर बटन, अलग चौड़ाई के हैं तो वास्तव में एक अतिरिक्त ImageView
हैडर के बाईं ओर की जरूरत हो सकती पर।
आइए लाइटररआउट के रूप में हमारे हेडर व्यू को बनाएं। हम ऊपरी डिवाइडर और खिंचाव के अंतराल को उसी layout_weight
के साथ रख सकते हैं। ,
मुझे व्यक्तिगत रूप से करने के लिए के लिए अलग पृष्ठभूमि बनाने:
और R.drawable.header_divider
एक सरल (वैकल्पिक पारदर्शी) बिटमैप है:
public class HeaderLayout extends LinearLayout {
public HeaderLayout(Context context) {
super(context);
initView();
}
public HeaderLayout(Context context, AttributeSet attrs) {
super(context, attrs);
initView();
}
public void setNumberOfColumns(int number) {
removeAllViews();
for (int i = 0; i < number; i++) {
addView(getColumnView(), getColumnLayoutParams());
// We don't need a divider after the last item
if (i < number - 1) {
addView(getDividerView(), getDividerLayoutParams());
}
}
}
private void initView() {
setBackgroundResource(R.drawable.header_bg);
}
private View getColumnView() {
return new View(getContext());
}
private View getDividerView() {
ImageView dividerView = new ImageView(getContext());
dividerView.setImageResource(R.drawable.header_divider);
dividerView.setScaleType(ImageView.ScaleType.FIT_XY);
return dividerView;
}
private LayoutParams getColumnLayoutParams() {
return new LayoutParams(0, LayoutParams.MATCH_PARENT, 1.0f);
}
private LayoutParams getDividerLayoutParams() {
return new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
}
}
कहाँ R.drawable.header_bg
एक 9patch है पहला और अंतिम बटन कम से कम कठिन समाधान है, लेकिन यह वास्तविक कार्य पर निर्भर करता है।
स्रोत
2014-04-09 12:29:42