2017-02-26 9 views
1

Android에서 활동의 작업 표시 줄 제목을 어떻게 배치 할 수 있습니까?센터 작업 표시 줄 제목

이 주제에 관해서는 많은 질문이 있습니다. 그리고 모든 대답은 "사용자 정의보기 사용"및 자신의 도구 모음으로 돌아옵니다.

사용자 지정보기를 만들지 않고도 작동하는 솔루션을 발견했습니다.

답변

2

Activity이 메소드 유무 :

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); 
     } 
    } 
} 

그런 다음, 당신의 onCreate()에 전화 : 그것은

centerTitle(); 

의 그!

+0

왜 XML을 사용하지 않습니까? –

+0

메뉴, 스타일 (색상, 테마)을 직접 구현해야하기 때문에. 이 방법은 기본 색상 및 기타 모든 표준 작업 표시 줄 기능이 여전히 있습니다 –

+0

내가 무슨 뜻인지 모르겠지만 AppBarLayout 및 중심 TextView를 사용하면 여전히 언급 한 모든 것을 얻을 수 있습니다 –

-1
<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>