0

Jeremy Feinstein의 슬라이딩 메뉴와 actionbarSherlock을 구현하는 Android 활동에 액션 바를 구현하려고합니다. 내가 직면하고있는 문제는 작업 표시 줄의 제목 텍스트를 가운데 정렬하는 것입니다. 내 작업 표시 줄에는 왼쪽 메뉴 슬라이딩 동작을 활성화하기 위해 텍스트 왼쪽에 "icon_sliding_menu"이라는 메뉴 아이콘이 있습니다.아이콘과 슬라이딩 메뉴가있는 셜록 액션 바에 텍스트를 가운데에 넣는 법

나는 아래에 첨부 된 예제 this을 사용했습니다. 그러나 내보기를 사용자 정의하려고 "getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);"줄을 추가하면 제목이 사라지고 텍스트가 전혀 표시되지 않습니다. 위에서 언급 한 줄의 코드로 작성 enter image description here

액션 바 : enter image description here

가 어떻게 정렬 할 수 있습니다 중앙에 텍스트 위에서 언급 한 라인이 코드에 있지

액션 바? 나는 아래에 나의 코드를 붙이고있다.

actionbar.xml

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home); 

    final View actionBarLayout = LayoutInflater.from(this).inflate(
      R.layout.actionbar, null); 

    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
    getSupportActionBar().setDisplayShowCustomEnabled(true); 
    getSupportActionBar().setCustomView(actionBarLayout); 
    getSupportActionBar().setTitle("Home"); 
    getSupportActionBar().setHomeButtonEnabled(true); 

    initSlidingMenu(); 
} 

private void initSlidingMenu() { 

    slidingMenu = new SlidingMenu(this); 
    slidingMenu.setMode(SlidingMenu.LEFT_RIGHT); 
    slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 

    slidingMenu.setAboveOffset(50); 
    slidingMenu.setBehindOffset(150); 
    slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 

    slidingMenu.setOnOpenListener(new OnOpenListener() { 
     @Override 
     public void onOpen() { 
      getSupportActionBar().setTitle("Menu"); 
     } 
    }); 

    slidingMenu.setOnCloseListener(new OnCloseListener() { 
     @Override 
     public void onClose() { 
      getSupportActionBar().setTitle("Home"); 
     } 
    }); 

    slidingMenu.setSecondaryOnOpenListner(new OnOpenListener() { 
     @Override 
     public void onOpen() { 
      getSupportActionBar().setTitle("Current Trip"); 
     } 
    }); 

    // Add left menu 
    mTransaction = this.getSupportFragmentManager().beginTransaction(); 
    slidingMenu.setMenu(R.layout.left_menu); 
    mTransaction.commit(); 

    // Add right menu 
    mTransaction = this.getSupportFragmentManager().beginTransaction(); 
    slidingMenu.setSecondaryMenu(R.layout.right_menu); 
    mTransaction.commit(); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    getSupportActionBar().setIcon(R.drawable.icon_sliding_menu); 
} 
+0

http://stackoverflow.com/questions/19244411/center-align-title-in-action-bar-using-styles-in- android – Raghunandan

+0

http://stackoverflow.com/a/23841756/896322 –

답변

0

당신은 액션 바의 titleTextStyle 속성을 사용하여 작업을 수행 할 수 있습니다

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:gravity="center" > 

<TextView 
    android:id="@+id/action_bar_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:textSize="18sp" /> 
</LinearLayout> 

HomeActivity.java. 앱 테마와 같은 사용자 정의 스타일에 actionBarTabSyle을 설정하여 styles.xml에서

,

<item name="titleTextStyle">@style/TitleTextStyle</item> 

그리고을 heres CustomActionBarTabs

,

<!-- action bar tab styles --> 
<style name="TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:textColor">@color/actionbar_text</item> 
    <item name="android:gravity">center</item> //center the title 
</style> 

하면 다양한 스타일을 설정할 수 있습니다이 사용 색상과 같은 제목 텍스트.이 항목은 ActionBar 내의 Title에 제공된 텍스트의 중심에 위치한다는 것을 기억하십시오.

    : 경우에 이것은 당신이 당신의 자신의 레이아웃을 만들이 간단한 단계를 수행 할 경우

    getSupportActionBar().setCustomView(R.layout.action_bar); 
    

    , 당신은 항상 당신의 자신의 사용자 정의보기를 생성하고 액션 바에 추가 할 수 있습니다 많은 도움이 doen't

  1. 자바 코드 R.layout.actionbar는 다음과 같은 XML이다

    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
    getSupportActionBar().setCustomView(R.layout.actionbar); 
    

    .

  2. XML

    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:orientation="vertical"> 
    
    <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:text="YOUR ACTIVITY TITLE" 
        android:textColor="#ffffff" 
        android:textSize="24sp" /> 
    </LinearLayout> 
    

Source.

+0

여전히 위에서 언급 한 것과 동일한 문제가 발생합니다. 당신이 언급 한 것을 시도했지만 텍스트가 여전히 왼쪽 정렬되어 있고 "getSupportActionBar(). setDisplayOptions (ActionBar.DISPLAY_SHOW_CUSTOM);"줄을 추가하면 텍스트가 사라집니다. – naddnan

+0

getSupportActionBar()를 사용하려면 자체보기를 만들어야합니다.setDisplayOptions (ActionBar.DISPLAY_SHOW_CUSTOM)입니다. 나는 지금 편집했다. –