2015-11-12 12 views
9

के साथ एंड्रॉइड सेंटर शीर्षक वर्तमान में एक टूलबार के साथ एक नेविगेशन ड्रॉवर है जिसमें शीर्षक है, मैं टूलबार के भीतर इस शीर्षक को केंद्र में रखना चाहता हूं लेकिन टूलबार ड्रॉवर आइकन को ध्यान में रखता नहीं है जैसा कि आप देख सकते हैं निम्नलिखित तस्वीर।नेविगेशन ड्रॉवर

Off centre

जबकि जब मैं इस तस्वीर में, अन्य गतिविधियों है कि नेविगेशन ड्रॉर शीर्षक पूरी तरह से केंद्रित है के भीतर नहीं हैं के लिए एक ही उपकरण पट्टी लेआउट का उपयोग शो के रूप में

:

enter image description here

तो कैसे क्या मुझे इस आइकन को ध्यान में रखना है?

<android.support.design.widget.AppBarLayout 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:theme="@style/Theme.App.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/black" 
     app:popupTheme="@style/Theme.App.PopupOverlay"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <TextView 
       android:id="@+id/toolbar_title" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:textColor="@color/white" 
       android:textStyle="bold" 
       android:text="Title" 
       android:textSize="16sp" /> 

     </RelativeLayout> 

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

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

उत्तर

19

आप यह समझना होगा कि टूलबार विजेट ViewGroup वर्ग फैली जरूरत है, और यह है यह खुद है:

यहाँ मेरी लेआउट है LayoutParams

तो आपको टूलबार के अंदर रिलेवेटिवआउट की आवश्यकता नहीं है, और टेक्स्टव्यू के साथ केवल एक पंक्ति जोड़ने की आवश्यकता है।

android:layout_gravity="center_horizontal" 

और अंतिम एक्सएमएल इस तरह दिखना चाहिए,

<android.support.design.widget.AppBarLayout xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:theme="@style/Theme.App.AppBarOverlay" > 

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="@color/black" 
    app:popupTheme="@style/Theme.App.PopupOverlay" > 

    <TextView 
     android:id="@+id/toolbar_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:text="Title" 
     android:textColor="@color/white" 
     android:textSize="16sp" 
     android:textStyle="bold" /> 
</android.support.v7.widget.Toolbar> 

+1

धन्यवाद @Chitrang आपने अपना दिन बनाया –

+0

मुझे टूलबार के अंदर छविदृश्य और टेक्स्टव्यू दिखाने की ज़रूरत है, मैं यह कैसे कर सकता हूं –

2

आप TextView में android:layout_width="match_parent" को android:layout_width="wrap_content" बदलने की जरूरत है .....

+0

सभी इस टूलबार की चौड़ाई है, जो के रूप में मैं पर प्रकाश डाला है आइकन के लिए खाते में नहीं है करने के लिए पाठ दृश्य खिंचाव है करता है, इसलिए यह अभी भी बंद है केंद्र –

+0

match_parent और करने के लिए अपने गुरुत्वाकर्षण (नहीं layout_gravity) सेट केंद्र भी –

+0

@ NguyễnHoàiNam फिर से यह ऑफसेट होने की समस्या को हल नहीं करता है, क्योंकि संपूर्ण लेआउट दराज बटन की चौड़ाई को ध्यान में नहीं ले रहा है। –

4

RelativeLayout निकालें तो इस तरह से अपनी TextView बदलने के लिए,:,

<android.support.design.widget.AppBarLayout 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:theme="@style/Theme.App.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/black" 
     app:popupTheme="@style/Theme.App.PopupOverlay"> 

     <TextView 
      android:id="@+id/toolbar_title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="Title" 
      android:textColor="@color/white" 
      android:textSize="16sp" 
      android:textStyle="bold"/> 

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

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

कि कॉल setDisplayShowTitleEnabled के बाद करने के लिए onCreate में, मूल शीर्षक को हटा दें अपनी गतिविधि की विधि:

enter image description here

+0

यह उत्तर मेरा समय बचाता है, धन्यवाद @ मैटिया –

0

आशा इस में मदद मिलेगी:

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

     ... 
    } 
} 

यह परिणाम प्राप्त है।

enter image description here

<TextView 
     android:id="@+id/toolbar_title" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:text="title" 
     android:gravity="center" 
     android:textColor="#ffffff" 
     android:textSize="21dp" 
     android:textStyle="bold" 
     android:paddingRight="30dp" 
     android:paddingLeft="10dp" 
     android:paddingTop="15dp" /> 

प्रत्येक गतिविधि के लिए इस का उपयोग करें: अपने xml, कुछ परिवर्तनों के साथ अपने कोड में इस कोड का उपयोग करने का प्रयास करें। यह सुनिश्चित करेगा कि आपका टेक्स्ट आइकन के बगल में पूरी जगह को कवर करेगा और इसके भीतर के पाठ को केंद्रित करेगा।

<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" /> 
<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageView" 
     android:paddingTop="15dp" 
     android:src="@drawable/ic_keyboard_arrow_left_black_24dp" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <TextView 
     android:id="@+id/toolbar_title" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:text="title" 
     android:gravity="center" 
     android:textColor="#ffffff" 
     android:textSize="21dp" 
     android:textStyle="bold" 
     android:paddingRight="30dp" 
     android:paddingLeft="10dp" 
     android:paddingTop="15dp" /> 

</RelativeLayout> 

--------Nav_Drawer layout 

    <?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="@dimen/nav_header_height" 
     android:background="@drawable/side_nav_bar" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark" android:orientation="vertical" 
     android:gravity="bottom"> 

     <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:paddingTop="@dimen/nav_header_vertical_spacing" 
      android:src="@android:drawable/sym_def_app_icon" android:id="@+id/imageView" /> 

     <TextView android:layout_width="match_parent" android:layout_height="wrap_content" 
      android:paddingTop="@dimen/nav_header_vertical_spacing" android:text="Android Studio" 
      android:textAppearance="@style/TextAppearance.AppCompat.Body1" /> 

     <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:text="[email protected]" android:id="@+id/textView" /> 

    </LinearLayout> 
संबंधित मुद्दे