Androidでアクティビティのアクションバーのタイトルをどのようにすることができますか?センターのアクションバーのタイトル
私は、この特定のトピックについては、SOに関する多くの質問を見てきました。そして、すべての答えは "カスタムビューを使用する"に戻り、独自のツールバーを持っています。
カスタムビューを作成せずに動作するソリューションが見つかりました。
Androidでアクティビティのアクションバーのタイトルをどのようにすることができますか?センターのアクションバーのタイトル
私は、この特定のトピックについては、SOに関する多くの質問を見てきました。そして、すべての答えは "カスタムビューを使用する"に戻り、独自のツールバーを持っています。
カスタムビューを作成せずに動作するソリューションが見つかりました。
はあなたのActivity
でこのメソッドを持っています。その後、ちょうどあなたのonCreate()
でそれを呼び出す
private void centerTitle() {
ArrayList<View> textViews = new ArrayList<>();
getWindow().getDecorView().findViewsWithText(textViews, getTitle(), View.FIND_VIEWS_WITH_TEXT);
if(textViews.size() > 0) {
AppCompatTextView appCompatTextView = null;
if(textViews.size() == 1) {
appCompatTextView = (AppCompatTextView) textViews.get(0);
} else {
for(View v : textViews) {
if(v.getParent() instanceof Toolbar) {
appCompatTextView = (AppCompatTextView) v;
break;
}
}
}
if(appCompatTextView != null) {
ViewGroup.LayoutParams params = appCompatTextView.getLayoutParams();
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
appCompatTextView.setLayoutParams(params);
appCompatTextView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
}
}
}
:
centerTitle();
それだそれ!
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" >
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="haiii"/>
</android.support.v7.widget.Toolbar>
なぜXMLを使用しないのですか? –
メニュー、スタイル(色、テーマ)の独自の実装を行う必要があるため。この方法では、プライマリカラーとその他の標準的なアクションバーの機能はまだ残っています –
私はあなたが何を意味するかわかりませんが、AppBarLayoutと中心のTextViewを使用して、あなたはまだあなたが言及したすべてのものを取得します –