Gần đây tôi đã phát triển một ứng dụng Android, trong đó tôi cần phải có bố cục tùy chỉnh và thứ nguyên cho thanh tab. Cách mà tôi đã làm nó cho đến bây giờ là bằng cách sử dụng thư viện ActionBarSherlock của Jake Wharton để hỗ trợ các phiên bản Android trước HoneyComb, và bằng cách áp dụng một phong cách cho ứng dụng mà tôi chỉnh sửa mục style actionBarSize.Thay đổi chiều cao thanh tác vụ trên Android JellyBean
Bây giờ, tôi đã thử nghiệm ứng dụng trên Galaxy S3 (với Jellybean trên đó), và chiều cao thanh tab không thay đổi nữa theo giá trị actionBarSize
.
Vì vậy, tôi đã bắt đầu tìm kiếm thông qua mã Jellybean, và tôi thấy phương pháp này trong lớp ActionBarPolicy
:
public int getTabContainerHeight() {
TypedArray a = mContext.obtainStyledAttributes(null, R.styleable.ActionBar,
com.android.internal.R.attr.actionBarStyle, 0);
int height = a.getLayoutDimension(R.styleable.ActionBar_height, 0);
Resources r = mContext.getResources();
if (!hasEmbeddedTabs()) {
// Stacked tabs; limit the height
height = Math.min(height,
r.getDimensionPixelSize(R.dimen.action_bar_stacked_max_height));
}
a.recycle();
return height;
}
Từ những gì tôi thu thập trong phương pháp này, có vẻ như Jellybean hạn chế chiều cao của TabBar, khi ứng dụng ở chế độ dọc, bằng cách đặt chiều cao thanh tab thành giá trị thứ nguyên "action_bar_stacked_max_height" (là 48dp, trong tệp /values/dimen.xml
của 4.1), mặc dù tôi đã đặt chiều cao thanh tác vụ trong actionBarSize
.
Tôi đã cố gắng ghi đè giá trị thứ nguyên này, bằng cách đặt giá trị đó thành giá trị của riêng tôi trong tệp dimen.xml
của riêng tôi, nhưng tôi không có may mắn. Nó không hoạt động.
Câu hỏi của tôi:
Do you guys biết của một cách thức mà tôi có thể ghi đè lên "action_bar_stacked_max_height" giá trị dimen?
Cảm ơn bạn trước!
Tôi cũng có cùng một vấn đề. Có bất kỳ giải pháp bạn tìm thấy cho điều này? – user936414