Androidカスタムタイトルバーの例の詳細

4159 ワード

Androidカスタムタイトルバーの例の詳細
Androidアプリの開発ではカスタムタイトルバーがよく使われますが、マルチレベルのページがある場合はカスタムタイトルバーにデータを渡す必要があります.
本文の要点:
カスタムタイトル入力不完全カスタムタイトルバー戻るボタンのクリックイベント
一、コード
ここではまず流れを紹介します.
1.タイトルバーレイアウトファイルmytitlebarを作成します.xml 2. ここにいるxmlでmytitlestyleトピックを作成します.クラスCustomTitleBar 4を作成する.カスタムタイトルバーが必要なActivityのOnCreateメソッドでCustomTitleBar 5をインスタンス化する.AndroidManifestでxmlは、カスタムタイトルバーを使用したActivity定義トピックに対して
1.カスタムタイトルバーレイアウトmytitlebarを定義します.xml




  
  




2.style.xmlでmytitlestyleトピックを作成する


  
  


3.クラスCustomTitleBarの作成

public class CustomTitleBar {

  private Activity mActivity;
  //     static              

  /**
   * @param activity
   * @param title
   * @see [      ]
   */
  public void getTitleBar(Activity activity, String title) {
    mActivity = activity;
   activity.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
   //             
    activity.setContentView(R.layout.mytitlebar);
    activity.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
        R.layout.mytitlebar);
//         TextView                
    TextView textView = (TextView) activity.findViewById(R.id.mytitle);
    textView.setText(title);
    //           
    ImageButton titleBackBtn = (ImageButton) activity.findViewById(R.id.bt_back);
    titleBackBtn.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
      //              
        mActivity.onBackPressed();
      }
    });
  }
}


4.カスタムタイトルバーが必要なActivityのOnCreateメソッドでCustomTitleBarをインスタンス化します.ここでfoodページです.

public class food extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //   CustomTitleBar        
    CustomTitleBar ct = new CustomTitleBar();
    ct.getTitleBar(this, "  ");
    setContentView(R.layout.page_food);
  }
}

5.AndroidManifest.xmlは、カスタムタイトルバーを使用したActivity定義トピックに対して

//       ,android:theme="@style/mytitlestyle"     


二、まとめ
カスタマイズされたタイトルバーを使用すると、不満を満たす人が多く、左右に隙間があり、戻るボタンがクリックされてもイベントに応答しないという問題に直面します.ここでは、最適な方法をテストし、まとめました.
カスタムタイトルバーの埋め込みが不満で、ネット上には多くの解決策があり、複雑なものもあります.私はここで直接Themeを定義するときに1つの属性で解決しました.理解しやすいです.
タイトルバーをカスタマイズしてボタンをクリックしてイベントに応答しないかエラーが発生する問題も、ネット上の多くのコードをテストしたもので、onBackPressed()を使うのが最も便利で、finish()を使う人もいて、残りのOnKeyDownなどのテストは合格しませんでした.
もし疑問があれば伝言を残してあるいは当駅のコミュニティに行って討論を交流して、読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!