欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Android中BaseActivity自定義標(biāo)題欄

再做一個項目的時候,要求標(biāo)題欄的標(biāo)題再中間,樣式,字體大小都要自定義。左邊一個返回按鈕,一個關(guān)閉按鈕,右邊定義一個提交按鈕,有時候顯示有時候隱藏。因為原生的title標(biāo)題是再左邊的,然后去給Titlebar設(shè)置自定義View的時候,也會不盡人意,標(biāo)題不是再正中間的,標(biāo)題欄太高等問題。

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比新華網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式新華網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋新華地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。

我們要求的是這樣的,右邊的按鈕可以顯示或者隱藏。

Android中BaseActivity自定義標(biāo)題欄 

于是就決定自己寫一個BaseActivity,所有的都去繼承這個基類,然后自己去定義標(biāo)題欄的樣式就可以就可以了。
下面來講一下這個界面是怎么實(shí)現(xiàn)的:

首先定義一個類BaseActivity:

public class BaseActivity extends AppCompatActivity implements View.OnClickListener{

  private TextView mTitleTextView;//標(biāo)題
  private TextView close_tv;//
  protected TextView commint_tv;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    //將界面加入到棧中,方便管理
    MyApplication.getInstance().addActivity(this);
    initViews();
  }


  private void initViews() {
    super.setContentView(R.layout.activity_abstract_title);
    mTitleTextView = (TextView) findViewById(R.id.action_bar_title_tv);
    mContentLayout = (FrameLayout) findViewById(R.id.layout_content);
     close_tv = ((TextView) findViewById(R.id.action_bar_close_tv));
    ImageView back_ic = (ImageView) findViewById(R.id.action_bar_back_iv);
     commint_tv = (TextView) findViewById(R.id.action_bar_comint_tv);
     back_ic.setOnClickListener(this);
    mTitleTextView.setOnClickListener(this);
  }

  // 返回鍵返回事件
  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (KeyEvent.KEYCODE_BACK == keyCode) {
      onBackPressed();
    }
    return super.onKeyDown(keyCode, event);
  }

  public boolean onTouchEvent(MotionEvent event) {
    if(null != this.getCurrentFocus()){
      /**
       * 點(diǎn)擊空白位置 隱藏軟鍵盤
       */
      InputMethodManager mInputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
      return mInputMethodManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), 0);
    }
    return super .onTouchEvent(event);
  }

  /**
   * 顯示關(guān)閉按鈕
   */
  public void showCloseBT(){
    if (close_tv!=null){
      close_tv.setVisibility(View.VISIBLE);
      close_tv.setOnClickListener(this);
    }
  }
  /**
   * 顯示提交按鈕按鈕
   */

  public void showCommintBT(String s){
    if (commint_tv!=null){
      commint_tv.setVisibility(View.VISIBLE);
      commint_tv.setOnClickListener(this);
      commint_tv.setText(s);
    }
  }


  /**
   * 返回按鈕點(diǎn)擊后觸發(fā)
   */
  protected void onLeftBackward() {
    onBackPressed();
  }

  /**
   * 右邊提交按鈕點(diǎn)擊后觸發(fā)
   */
  protected void onRightForward() {

  }
  /**
   * 提交關(guān)閉按鈕點(diǎn)擊后觸發(fā)
   */
  protected void onLeftCloseword(){
    Intent intent = new Intent(this, MainActivity.class);
    intent.putExtra("tabpos", 2);
    startActivity(intent);
    finish();
  }
  //設(shè)置標(biāo)題內(nèi)容
  @Override
  public void setTitle(int titleId) {
    mTitleTextView.setText(titleId);
  }

  //設(shè)置標(biāo)題內(nèi)容
  @Override
  public void setTitle(CharSequence title) {
    mTitleTextView.setText(title);
  }

//點(diǎn)擊標(biāo)題時出發(fā)的事件操作
  public void onTitle() {

  }

  //取出FrameLayout并調(diào)用父類removeAllViews()方法
  @Override
  public void setContentView(int layoutResID) {
    mContentLayout.removeAllViews();
    View.inflate(this, layoutResID, mContentLayout);
    onContentChanged();
  }

  @Override
  public void setContentView(View view){
    mContentLayout.removeAllViews();
    mContentLayout.addView(view);
    onContentChanged();
  }

  @Override
  public void onClick(View v) {
    switch (v.getId()) {
      case R.id.action_bar_back_iv:
        onLeftBackward();
        break;
      case R.id.action_bar_comint_tv:
        onRightForward();
        break;
      case R.id.action_bar_close_tv:
        onLeftCloseword();
      case R.id.action_bar_title_tv:
        onTitle();
      default:
        break;
    }
  }

}

這樣的話別的Activity去繼承BaseActivity的時候,只需要去設(shè)置是否顯示某個按鈕即可,標(biāo)題欄各個按鈕的點(diǎn)擊事件不需要去設(shè)置,直接重寫
onLeftBackward();onRightForward();onRightForward();onTitle();
然后對應(yīng)各自的方法就可以了。

下面給出布局文件activity_abstract_title.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >
  <!-- Title -->
  <include layout="@layout/actionbar_layout" />
  <FrameLayout
    android:id="@+id/layout_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff" >
  </FrameLayout>

</LinearLayout>

actionbar_layout.xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/layout_titlebar"
  android:layout_width="match_parent"
  android:layout_height="40dp"
  android:background="#2B2B2B">

  <TextView
    android:id="@+id/action_bar_title_tv"
    android:layout_width="180dp"
    android:layout_height="match_parent"
    android:ellipsize="marquee"
    android:gravity="center_horizontal|center"
    android:lines="1"
    android:textColor="#fff"
    android:focusable="true"
    android:marqueeRepeatLimit="marquee_forever"
    android:layout_centerInParent="true"
    android:focusableInTouchMode="true"
    android:scrollHorizontally="true"
    android:textSize="18sp" />

  <ImageView
    android:contentDescription="@string/cancel"
    android:id="@+id/action_bar_back_iv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:padding="10dp"
    android:textSize="15sp"
    android:textStyle="bold"
    android:textColor="#fff"
    android:src="@drawable/arrow_left" />

  <TextView
    android:layout_toEndOf="@id/action_bar_back_iv"
    android:text="@string/action_bar_close"
    android:id="@+id/action_bar_close_tv"
    android:textColor="#fff"
    android:visibility="invisible"
    android:textSize="15sp"
    android:textStyle="bold"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:padding="10dp"/>
  <TextView
    android:visibility="invisible"
    android:padding="10dp"
    android:layout_alignParentEnd="true"
    android:text="@string/action_bar_commint"
    android:id="@+id/action_bar_comint_tv"
    android:textSize="15sp"
    android:textColor="#fff"
    android:textStyle="bold"
    android:layout_marginEnd="3dp"
    android:layout_width="wrap_content"
    android:layout_height="match_parent" />
</RelativeLayout>

下面是一個簡單的應(yīng)用:

public class DemoActivity extends MyBaseActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTitle("APPBaseActivity");//設(shè)置標(biāo)題
    showCloseBT();//顯示關(guān)閉按鈕,默認(rèn)時隱藏的

  }


    //如果返回按鈕有其他操作的話可以重寫
  @Override
  protected void onLeftBackward() {
    super.onLeftBackward();
    //里面寫事件就可以
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

網(wǎng)站標(biāo)題:Android中BaseActivity自定義標(biāo)題欄
轉(zhuǎn)載注明:http://aaarwkj.com/article32/pdhpsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站網(wǎng)站營銷、移動網(wǎng)站建設(shè)標(biāo)簽優(yōu)化、網(wǎng)站收錄電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
亚洲中文字幕乱码第一页| 中文字幕乱码日韩一区| 精品三级一区二区三区| 亚洲一区二区三区精品国产| 激情综合五月激情综合| 男人天堂av一区二区| 91日本在线免费观看视频| 日韩精品成人区中文字幕| heyzo高清中文字幕在线| 黄色高清无遮挡在线观看| 国产在线拍揄自揄视频不卡99| 在线日韩观看免费av| 亚洲婷婷久久一区二区| 亚洲不卡一区二区在线| 亚洲欧美日韩国产99| 91麻豆精品国产自产| 欧美高清一区二区在线观看| 欧美一级午夜欧美午夜视频| 麻豆亚洲av熟女国产| 国产亚洲一区二区三区日韩| 国产精品毛片一区二区三| 91麻豆亚洲国产成人久久精品| 日日骚岛国中文字幕av| 一区二区三区在线观看淫| 日本少妇人妻一区二区| 亚洲中文字幕高清无二区| 亚洲国产精品视频自拍| 精品欧美日韩国产一区| 四虎最新地址在线观看| 日本乱一区二区三区在线| 亚洲一区二区三区av电影| 亚洲福利视频在线观看免费 | 在线青青草视频免费观看| 亚洲欧美日韩午夜在线| 四虎精品视频在线免费| 日本韩国三级理伦久久久| 亚洲欧美一区二区色慰| 亚洲男女尻逼片视频网站| 日本黄色小网站在线播放| 亚洲国产日韩欧美综合久久| 超碰97精品在线观看|