您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么定義Android標題欄工具類”,在日常操作中,相信很多人在怎么定義Android標題欄工具類問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么定義Android標題欄工具類”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
/** * 一個自定義的通用標題欄實列類 */ public class CustomeTitleBar extends RelativeLayout { /** * 上下文 */ private Context mContext; /** * 左邊文字 */ private TextView left_tx = null; /** * 左圖片 */ private ImageView left_img = null; /** * 左邊按鈕 */ private RelativeLayout left_rl = null; /** * 中間標題文本 */ private TextView center_tx = null; /** * 右通用文本 */ private TextView right_tx = null; /** * 右圖片 */ private ImageView right_img = null; /** * 右按鈕 */ private RelativeLayout right_rl = null; /** * title整體布局 */ private RelativeLayout title_rl = null; /** * * 填充狀態(tài)欄 */ private View view_status_bar_place=null; /* * 主布局 * */ private LinearLayout title_main_view; public LinearLayout getTitle_main_view() { return title_main_view; } public CustomeTitleBar(Context context) { this(context, null); } public CustomeTitleBar(final Context context, AttributeSet attrs) { super(context, attrs); initViews(context,attrs); initListeners(); } /** * 初始化UI組件. */ public void initViews(Context context, AttributeSet attrs) { //如果在自定義控件的構(gòu)造函數(shù)或者其他繪制相關(guān)地方使用系統(tǒng)依賴的代碼,會導致可視化編輯器無法報錯并提示:Use View.isInEditMode() in your custom views to skip code when shownin Eclipse if (isInEditMode()) { return; } this.mContext=context; LayoutInflater.from(this.getContext()).inflate(R.layout.include_custometitlebar , this, true); left_tx = (TextView) this.findViewById(R.id.left_tx); left_img = (ImageView) this.findViewById(R.id.left_img); left_rl = (RelativeLayout) this.findViewById(R.id.left_rl); center_tx = (TextView) this.findViewById(R.id.center_tx); right_tx = (TextView) this.findViewById(R.id.right_tx); right_img = (ImageView) this.findViewById(R.id.right_img); right_rl = (RelativeLayout) this.findViewById(R.id.right_rl); title_rl = (RelativeLayout) this.findViewById(R.id.title_rl); title_main_view = (LinearLayout) this.findViewById(R.id.title_main_view); view_status_bar_place=this.findViewById(R.id.view_status_bar_place); //默認右邊的這個操作按鈕是隱藏的 和左邊的文字是隱藏的 right_rl.setVisibility(View.GONE); left_tx.setVisibility(View.GONE); initAttrs(attrs); } /** * 初始化attrs * @param attrs */ private void initAttrs(AttributeSet attrs) { //獲取attr屬性 TypedArray typedArray = mContext.obtainStyledAttributes(attrs, R.styleable.CustomeTitleBar); //右邊圖標 int rightIcon = typedArray.getResourceId(R.styleable.CustomeTitleBar_rightIcon, 0); //中間文字 int centerTitle = typedArray.getResourceId(R.styleable.CustomeTitleBar_centerText,0); //右邊文字 int rightTitle = typedArray.getResourceId(R.styleable.CustomeTitleBar_rightText,0); if(rightIcon!=0){ //右邊圖標 right_img.setImageResource(rightIcon); } if(centerTitle!=0){ //中間文字 center_tx.setText(centerTitle); } if(rightTitle!=0){ //右邊文字 right_tx.setText(rightTitle); right_rl.setVisibility(View.VISIBLE); } } /** * 后退監(jiān)聽事件 */ public void initListeners() { left_rl.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { fireBack(); } }); } /** * 點擊返回按鈕要調(diào)用的方法 */ public void fireBack() { if(this.getContext() instanceof Activity) ((Activity)this.getContext()).finish(); } public TextView getLeft_tx() { return left_tx; } public ImageView getLeft_img() { return left_img; } public RelativeLayout getLeft_rl() { return left_rl; } public TextView getCenter_tx() { return center_tx; } public TextView getRight_tx() { return right_tx; } public ImageView getRight_img() { return right_img; } public RelativeLayout getRight_rl() { return right_rl; } public RelativeLayout getTitle_rl() { return title_rl; } public View getView_status_bar_place() { return view_status_bar_place; } }
到此,關(guān)于“怎么定義Android標題欄工具類”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。