Androidのロリポップは、 AppCompatのアクションバーのカスタムビューは、画面全体の幅を取らない

? steve_the_kid @ | Original: StackOverFlow

だから、私はちょうどロリポップに私のコードベースを更新した、と私はアクションバーで問題を抱えている。私はAppCompatのとActionBarActivityを使用して、カスタムビューを膨張させるんだ。これは、カスタムビューはもはや左の薄いストリップを残して、画面の幅全体を占めているようですしない

「 __rsm__ " ウェイそれが参照するために使用

「 __rsm__ " それが今見る方法

これは私がアクションバーを設定するために使用しているコードです。誰もが任意のアイデアがありますか?

final ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {
    actionBar.setDisplayHomeAsUpEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
    actionBar.setCustomView(R.layout.action_bar_content_search_custom_view);
    actionBar.setBackgroundDrawable(null);
    // actionBar.setStackedBackgroundDrawable(null);
    TextView title = (TextView) actionBar.getCustomView().findViewById(R.id.action_bar_title);
    title.setText(R.string.youtube);
    ImageView back = (ImageView) actionBar.getCustomView().findViewById(R.id.action_bar_back);
    back.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });
}

Edit

今カスタムビューを取り出して、背景を変更すると、全体の幅を占めます。だから、問題は、我々はのCustomViewはアクションバーの幅全体を占有することができますどのように、ですか?



Top 5 Respuesta

1Muzikant @

このような最近の「 ____ 」のアップデートで「 ____ 」に最新の変更によって引き起こされるに見えます。 それはあなたがアクションバーの処理方法に重大な変更が生じたようなようです。

私は同じ問題に直面し、 http://developer.android.com/reference/android/support/v7/app/ActionBar.htmlを読んだ後、そして特に以下の引用私は解決策を見つけた。

Android(アンドロイド) L( APIレベル21 )で始まる、アクションバーがアプリケーションのレイアウト内の任意のツールバーウィジェットで表すことができる。アプリケーションでは、ツールバー、アクティビティのアクションバーとして扱われるべき活動に信号を送ることがあります。この機能を使用する活動は、供給された.NoActionBarテーマの1つを使用するウィンドウの機能を要求しないそうでない場合はfalseにwindowActionBar属性を設定するか、または必要があります。

私はそれを参照してください方法は、 「 ____ 」のテーマが変更され、一方ではいくつかのことを破るが、他にあまり多くの柔軟性を提供するように見えたし。 私は、次の手順を実行することをお勧めします。

Use ActionBar style in your activity as described in the above quote Add a appcompat-v7 to your Activity layout Set the ActionBar attribute. This is the main issue with the margin that you describe in your question
AppCompat

これは通常お勧めします、あなたは唯一の複数の活動に使用された場合に一つの場所にツールバーをカスタマイズする必要がありますので、別のレイアウトファイルであなたの活動のレイアウトで「 ____ 」を使用することを行うことを

.NoActionBar
Use android.support.v7.widget.Toolbar and app:contentInsetStart="0dp" in your Activity <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/actionBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:contentInsetEnd="0dp" app:contentInsetStart="0dp" > </android.support.v7.widget.Toolbar> to include
<include layout="@layout/view_action_bar" />
Once you do that, all actions added in findViewById will be added to the toolbar and it will be treated as the activity action bar. Further customize the Toolbar as desired (Add child views etc.)

2Gian Darren Azriel Aquino @

私はあなたにもスタイルでそれを行うことができると思います。これを試してみてください。キットカットでそれをテスト

setSupportActionBar
3LeoLink @

私はちょうど今日は、同様に、その後私はAndroidのメーカーによって自動的に生成された私のプロジェクトの中に「 ____ 」持っていた、それが原因だがわかった。この問題が発生しました。

Why?

私の「 ____ 」のコンテンツであったため。

onCreate

そして、私の「 ____ 」何かを好きで含有していた:

signal to the Activity which Toolbar should be treated as the Activity's action bar

私はロリポップ上で私のアプリを実行したときに、 「 ____ 」を使用し、それはOPが持っていた正確な問題を引き起こしました。 だから私は、簡単な修正は単に削除されに来た:

Toolbar actionBar = (Toolbar) findViewById(R.id.actionBar);
setSupportActionBar(actionBar);

in onCreateOptionsMenu

Androidのロリポップは、 AppCompatのアクションバーのカスタムビューは、画面全体の幅を取らない