Nếu 'thanh hành động' của bạn chỉ là một cái nhìn đơn giản, giải pháp của tôi là đặt một số mã vào BaseActivity, có vẻ như:
@Override
public void setContentView(@LayoutRes int layoutResID) {
super.setContentView(layoutResID);
titleBar = (TitleBar) findViewById(R.id.title_view);
if (titleBar != null) {
titleBar.setTitle(getTitle());
}
}
Khi bạn đặt nhãn hoạt động và gọi setContentView
phương thức, chế độ xem tùy chỉnh sẽ hiển thị nhãn làm tiêu đề.
PS:
TitleBar.java
Mã của tôi:
public class TitleBar extends FrameLayout {
TextView back, title, action;
public TitleBar(Context context) {
super(context);
init(context);
}
public TitleBar(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context);
}
public TitleBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context) {
setId(R.id.title_view);
View layout = View.inflate(context, R.layout.title_bar, null);
back = (TextView) layout.findViewById(R.id.back);
title = (TextView) layout.findViewById(R.id.title);
action = (TextView) layout.findViewById(R.id.action);
addView(layout);
ViewGroup.LayoutParams params = layout.getLayoutParams();
setLayoutParams(params);
}
public void setTitle(CharSequence content) {
title.setText(content);
}
public void setTitleClickListener(View.OnClickListener listener) {
title.setOnClickListener(listener);
}
public void setBackClickListener(View.OnClickListener listener) {
back.setOnClickListener(listener);
}
public void setActionClickListener(View.OnClickListener listener) {
action.setOnClickListener(listener);
}
public void setActionVisiable(boolean visiable) {
action.setVisibility(visiable ? VISIBLE : INVISIBLE);
}
public void setBackVisiable(boolean visiable) {
back.setVisibility(visiable ? VISIBLE : INVISIBLE);
}
}
Tại sao không bạn có thể tùy bạn tiêu đề tooo – Trikaldarshi
Bởi vì tôi cần phải sửa đổi tiêu đề đôi khi. Nếu tôi cũng đặt tiêu đề trong chế độ xem tùy chỉnh, tôi cần thêm phương thức để xử lý thay đổi tiêu đề. – TieDad