2016-07-04 6 views
0

ツールバー内のテキストビューのセンタリングに問題があります。Android:テキストビューのツールバーがあまり集中していない

テキストは、テキストがわずかにあまりにも多くの右または左のナビゲーションアイコンにあるいくつかのパディングを持って見ることができるように、それはこの

enter image description here

のように見えますが長くなりすぎます。

下の画像は、テキストが小さい場合、オプションのロゴが(スパナがちょうど可視である場合、それは

同様

enter image description here

微細で

enter image description here

にレイアウト境界を有していますプレースホルダ)、最初の画像に表示されたテキストがきれいに表示されます

enter image description here

ここにコードがあります。あなたが何かを見るために必要がある場合はコメントを残してください

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 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:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.ersen.toolbarcentreproblem.MainActivity"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?actionBarSize" 
     android:background="@color/colorPrimary"> 


     <ImageView 
      android:id="@+id/logo" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="end" 
      android:padding="10dp" 
      android:visibility="gone" 
      app:srcCompat="@drawable/ic_build_black_24dp" 
      tools:visibility="visible"/> 

     <TextView 
      android:text="Set Holiday Set Holiday Set Holiday Set Holiday" 
      android:textColor="@android:color/white" 
      android:textAllCaps="true" 
      android:layout_gravity="center" 
      android:maxLines="1" 
      android:ellipsize="end" 
      android:gravity="center" 
      android:textSize="18sp" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </android.support.v7.widget.Toolbar> 



    <TextView 
     android:gravity="center" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="Hello World!" /> 
</LinearLayout> 

私が試してみました何

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayShowTitleEnabled(false); 
     toolbar.setNavigationIcon(R.drawable.ic_menu); 
    } 
} 

MainActivity

    ツールバーの0dpに設定されているすべてのは、何の効果

    がありませんでした

  • contentInsetLeft
  • contentInsetRight
  • contentInsetEnd
  • contentInsertStart

は、私はまた、テキストビューにパディングを適用しようとしたが、テキストがあるとき、これは問題の原因となりました小さい。

編集1:しようとナレンドラSorathiyaソリューション

enter image description here

+1

この多くを模索するためには、単に 'invisible'の代わりに、' gone'にあなたの '' logo' ImageView'の 'visibility'を設定します。 –

+0

@MikeM。こんにちは返信ありがとうございます。これはいくつかのケースでは機能するかもしれませんが、私は膨らんだメニューを持っているかもしれません。 –

+0

'SET HOLIDAY'' TextView'幅を' match_parent'に変更してください。 – Ironman

答えて

0
:TextViewに幅が

同じ問題

enter image description here

編集2をmatch_parentに設定します3210

+0

コードの一部を取りました。右のナビゲーションアイコンとテキストの間。 –

+0

こんにちは、ありがとう、私は私のプロジェクトにコードを貼り付け、テキストはまだ中心ではない、私の編集2を参照してくださいスクリーンショットを持ってください –

0

私は@マイクMは、ちょうど私がこの

を持っている目に見えないし、あなたのロゴImageViewのの可視性を設定する代わりに、私のツールバーで

を行っ

をすることについて言ったことを模索しました。

<ImageView 
    android:id="@+id/logo" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="end" 
    android:padding="10dp" 
    android:visibility="gone" 
    app:srcCompat="@drawable/ic_build_black_24dp" 
    tools:visibility="visible"/> 

<android.support.v4.widget.Space 
    android:id="@+id/space" 
    android:layout_width="25dp" 
    android:layout_height="25dp" 
    android:layout_gravity="end" 
    android:visibility="gone" 
    tools:visibility="visible"/> 

<TextView   
    android:id="@+id/toolbar_title" 
    android:text="Set Holiday Holiday Set Set S" 
    android:textColor="@android:color/white" 
    android:textAllCaps="true" 
    android:gravity="center" 
    android:layout_gravity="center" 
    android:layout_centerInParent="true" 
    android:maxLines="1" 
    android:ellipsize="end" 
    android:textSize="18sp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

お知らせロゴが表示されているか、ツールバー、メニュー項目を持っている場合、私はこのロジックに

@Override 
    protected void onResume() { 
     super.onResume(); 
     if (mLogo.getVisibility() == View.VISIBLE || mToolbar.getMenu().size() > 0) { 
      mSpace.setVisibility(View.GONE); 
      return; 
     } 

     mSpace.setVisibility(View.VISIBLE); 
    } 

を持った空間ウィジェット

onResumeで、MainActivity、それはそれはスペースビューをそれ以外の場合は非表示になります可視に設定します。

これは私の問題を解決しました。テキストはすべての場合に中央に表示されます。

このコードは、活動のonResumeあるので、それが実際には真であるとき、私はつもりです偽終わることができるように、それはフラグメントのonCreateOptionsMenu前に呼び出されます。この

mToolbar.getMenu().size() > 0 

と1つの問題があります

関連する問題