0

私はListFragmentをホストするアクティビティを使用しています。 ListFragmentから私はDetailTabsFragmentを開くことができます。 2つのタブは、2つのフラグメント:DetailFragmentReviewFragmentをホストします。ActionBarのタイトルは1文字に切り捨てられます

私はこのコードで、DetailFragmentにタイトルを設定します。

((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("my title"); 

しかし、あなたはスクリーンショットに、ここで見ることができるように、タイトルは最初の文字で切り捨てられます。何故ですか?

ActionBar screenshot

DetailTabsFragmentのXMLレイアウト:

<android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android" 
              xmlns:tools="http://schemas.android.com/tools" 
              xmlns:app="http://schemas.android.com/apk/res-auto" 
              android:layout_width="match_parent" 
              android:layout_height="match_parent" 
    app:elevation="0dp"> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/colorPrimary" 
     app:tabMode="fixed" 
     app:tabGravity="fill" 
     app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@android:color/white"/> 

</android.support.design.widget.AppBarLayout> 

アンmainActivityのレイアウト:

<android.support.design.widget.CoordinatorLayout 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="com.dcs.shows.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay" 
     app:elevation="0dp"> 

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

     </android.support.v7.widget.Toolbar> 
    </android.support.design.widget.AppBarLayout> 
+0

これをチェックしましたか? http://stackoverflow.com/q/15389663/2745495 –

+0

はい私は質問をする前にそれを見つけましたが、うまくいきませんでした。 – user11230

答えて

1

私は同じ問題を抱えていました。私のアーキテクチャは少し違っていますが、タイトルの末尾の結果は1文字(T ...)に切り捨てられて同じ結果になりました。私はあまりにも他のSOの質問にすべての提案と一緒に遊んだ。最終的に、それは活動のタイトルの設定と何らかの奇妙な競争状態のように思えました。私は単に活動ののsetTitle関数をオーバーライドし、私のためにそれを固定postDelay実行可能にスーパーへの呼び出しをラップすることがわかった:

@Override 
public void setTitle(final CharSequence title) { 
    toolBar.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      MainActivity.super.setTitle(title); 
     } 
    }, 100); 
} 

私は便利な方法として、ツールバーのpostDelayedを使用しています。しかし、あなたは確かにここでハンドラを使うことができます。お役に立てれば。

関連する問題