3

Sherlock アクション バーでのカスタム ビューのレンダリングに問題があります。タイトルテキストビューを中央に設定するように設計されたアクションバーでカスタムビューを正常に設定しましたが、更新などの他のメニュー項目を設定すると、背景が黒色で表示されます。ホームボタンでも同じことが起こります。次のスナップショットをご覧ください。

カスタム シャーロック アクション バー

この画像でわかるように、ホームボタンを表示するように設定するか、更新メニュー項目を設定すると、黒い背景でこのように表示されるべきではありません.

私のアクティビティ画面で

protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.menu_activity);
   .... 
   View customNav = LayoutInflater.from(this).inflate(R.layout.custom_navigation, null);
   TextView textView = (TextView)customNav.findViewById(R.id.screen_title);
   textView.setText("Category");
   getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
   getSupportActionBar().setCustomView(customNav);
   getSupportActionBar().setDisplayHomeAsUpEnabled(true);
   getSupportActionBar().setDisplayShowHomeEnabled(true);   
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0,Constants.REFRESH_ITEM_ID,0,Constants.LABEL_REFRESH)
        .setIcon(R.drawable.ic_refresh)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    return true;
}

いろいろ試しましたが治りません 助けてください。前もって感謝します。

4

2 に答える 2

4

アプリケーション全体またはこのアクティビティのマニフェスト ファイルで Theme.Sherlock.Dark を使用しているようです。これは ActionBar の通常の動作です。スタイルによって定義されますが、カスタム ビュー要素には独自の背景、テキスト スタイルなどがあります。setCustomView() javadoc から:

カスタム ナビゲーション ビューは、アプリケーション アイコンと任意のアクション ボタンの間に表示され、そこにある任意のスペースを使用できます。

このメソッドは、バーに新しいビューを追加するだけで、「バー全体のビュー」を設定しません。

http://jgilfelt.github.com/android-actionbarstylegeneratorをご覧ください。これは、アクション バーのスタイル ジェネレーターです。トグルボタン「スタイルの互換性」に注意してください。

于 2012-09-17T08:01:49.820 に答える
1

これの解決策は、私が望んでいた方法ではなく、別の方法であることがわかりました。実際には、カスタム ビューを作成するのではなく、さまざまな画面の画面タイトルを中央に配置してアクション バーの背景として設定する画像を作成しました。SherlockActionBar は、左上隅に表示されるデフォルトのタイトルを非表示にするのに十分柔軟です。私がやったことはすべてです。

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar()
            .setBackgroundDrawable(getResources().getDrawable(R.drawable.menu_head));
于 2012-09-17T09:35:36.740 に答える