एंड्रॉइड एपीआई 21 टूलबार पैडिंग


193

मैं एंड्रॉइड एसडीके एपीआई संस्करण 21 (समर्थन पुस्तकालय) के साथ नए टूलबार में अतिरिक्त पैडिंग से कैसे छुटकारा पा सकता हूं?

मैं इस तस्वीर पर लाल तीर के बारे में बात कर रहा हूँ: यहां छवि विवरण दर्ज करें

यहाँ कोड का उपयोग कर रहा हूँ:

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:background="?attr/colorPrimary"
        android:padding="0dp"
        android:layout_margin="0dp">

        <RelativeLayout
            android:id="@+id/action_bar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="0dp"
            android:padding="0dp"
            android:background="#000000">

            <Spinner
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

        </RelativeLayout>
</Toolbar>

जैसा कि आप देख सकते हैं कि मैंने सभी प्रासंगिक पैडिंग को 0 पर सेट किया है, लेकिन स्पिनर के आसपास अभी भी पैडिंग है। मैंने क्या गलत किया है या अतिरिक्त पैडिंग से छुटकारा पाने के लिए मुझे क्या करने की आवश्यकता है?

संपादित कुछ सवाल उठाया है कारण है कि मैं यह करने के लिए कोशिश कर रहा हूँ।

मटीरियल डिज़ाइन स्पेक्स के अनुसार, स्पिनर को बाईं ओर से 72dp होना चाहिए desc

मुझे अपना स्पिनर ठीक से लगाने के लिए Google ने वहां जो पैडिंग लगाई है उसे बेअसर करने की जरूरत है: desc

संपादित करें २

नीचे क्रिस बैन के जवाब के अनुसार मैंने सामग्री को सेट किया है। शुरुआत में 0. समर्थन पुस्तकालय के लिए आपको ऐप्पल पीपीपी का उपयोग करना होगा:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

     <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:minHeight="@dimen/action_bar_height"
        android:background="?attr/colorPrimary"
        android:contentInsetStart="0dp"
        android:contentInsetLeft="0dp"
        app:contentInsetLeft="0dp"
        app:contentInsetStart="0dp"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

</android.support.v4.widget.DrawerLayout>

मुझे आशा है कि यह किसी की मदद करता है, इसने मुझे कई दिनों तक भ्रमित किया था।


4
क्या आपने भी शीर्ष / नीचे की गद्दी को हटाने में कामयाबी हासिल की है? मैंने कोशिश की, लेकिन contentInsetX0dp के लिए सभी गुणों को सेट करने से भी कुछ नहीं होता है ।
patrickjason91

जैसा कि @ patrickjason91 टूलबार शीर्ष के साथ ImageView को संरेखित करना संभव है (टूलबार के अंदर छवि w, h: wra_content) है? मैं सब कुछ करने की कोशिश कर रहा था, लेकिन इसे नहीं बना सका .. मेरा लक्ष्य टूलबार के ऊपर से बुकमार्क रिबन इमेज "हैंगिंग" जैसा कुछ होना है, शर्त है कि हमेशा कुछ पैडिंग है कि मैं इसे खत्म नहीं कर सकता हूं
इवोक

जवाबों:


280

बाएं इनसेट टूलबार के कारण होता है contentInsetStartजो डिफ़ॉल्ट रूप से 16dp है।

कीलाइन में संरेखित करने के लिए इसे 72dp में बदलें।

समर्थन पुस्तकालय के लिए अद्यतन v24.0.0:

मटेरियल डिज़ाइन स्पेक से मेल करने के लिए एक अतिरिक्त विशेषता है contentInsetStartWithNavigationजो डिफ़ॉल्ट रूप से 16dp है। इसे बदलें यदि आपके पास एक नेविगेशन आइकन भी है।


इस के लिए बहुत बहुत धन्यवाद। हालांकि पैडिंग और मार्जिन से दूर जाने के लिए थोड़ा अजीब लगता है। क्या यह एंड्रॉइड 5 है?
जेम्स क्रॉस

1
सामग्री InsetStart यूआई प्रदान करने वाले किसी भी टूलबार से इनसेट करने के लिए उपयोग किया जाता है (उदाहरण के लिए नेविगेशन आइकन)।
क्रिस बेंस

और आप टूलबार में आइकन के साथ रेडियोबॉटन को कैसे संरेखित करेंगे? मेरे पास ऐसे ही मुद्दे हैं: stackoverflow.com/questions/26623042/…
फेरन नेग्रे

वहाँ भी शीर्षक गद्दी के लिए titleMarginStart attr है
deviant

2
contentInsetStartWithNavigation0 के लिए सेटिंग ने मेरे लिए समर्थन-v4: 25.0.1
Quentin G.

145

उपरोक्त उत्तर सही है, लेकिन अभी भी एक चीज़ है जो समस्याएँ पैदा कर सकती है (कम से कम इसने मेरे लिए एक मुद्दा बनाया)

मैंने निम्नलिखित का उपयोग किया और यह पुराने उपकरणों पर ठीक से काम नहीं करता है -

android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"

चाल यहाँ है बस निम्नलिखित का उपयोग करें -

app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"

और छुटकारा पाओ -

android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"

और अब इसे सभी उपकरणों में ठीक काम करना चाहिए।

आशा करता हूँ की ये काम करेगा।


यह डिफ़ॉल्ट व्यवहार हो सकता है। धन्यवाद =)
लुसियानो रोड्रिगेज

2
CollapsingToolBarLayout के लिए काम नहीं कर रहा है। क्रिप्या मेरि सहायता करे ।
असलम होसिन

एंड्रॉइड जोड़ना: पैडिंग = "0dp" ने मेरी मदद की
AITAALI_ABDERRAHMANE

1
उपर्युक्त 4 के साथ, app:contentInsetStartWithNavigationचीजों को ठीक करने में मदद कर सकता है यदि पहले से ही पर्याप्त नहीं है
कंप्यूटिंग

10

सरलता से टूलबार में यह दो लाइन जोड़ें। तब हमें डिफ़ॉल्ट रूप से 16dp द्वारा नए निकाले गए बाईं ओर स्थान bcoz मिलता है।

android:contentInsetStart="0dp"
app:contentInsetStart="0dp"

9

मामले में कोई और यहाँ ठोकर खाता है ... आप उदाहरण के लिए, पैडिंग सेट कर सकते हैं :

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

int padding = 200 // padding left and right

toolbar.setPadding(padding, toolbar.getPaddingTop(), padding, toolbar.getPaddingBottom());

या contentInset :

toolbar.setContentInsetsAbsolute(toolbar.getContentInsetLeft(), 200);

आपको पैडिंग को dp में बदलने और प्रदर्शन घनत्व को ध्यान में रखने की आवश्यकता नहीं है।
किसी ने

3

यहाँ मैंने क्या किया और यह पूरी तरह से एंड्रॉइड के हर संस्करण पर काम करता है।

toolbar.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@color/primary_color"
    app:theme="@style/ThemeOverlay.AppCompat"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="16dp" <!-- Add margin -->
        android:layout_marginStart="16dp"
        android:gravity="left|center"
        android:text="Toolbar Title" <!-- Your title text -->
        android:textColor="@color/white" <!-- Matches default title styles -->
        android:textSize="20sp"
        android:fontFamily="sans-serif-medium"/>

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

MyActivity.java (डिफ़ॉल्ट टूलबार शीर्षक छिपाने के लिए)

getSupportActionBar().setDisplayShowTitleEnabled(false); // Hide default toolbar title

परिणाम के साथ दिखाया गया है

यहां छवि विवरण दर्ज करें


3

अपना टूलबार बनाएं:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/menuToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:background="@color/white"
android:contentInsetLeft="10dp"
android:contentInsetRight="10dp"
android:contentInsetStart="10dp"
android:minHeight="?attr/actionBarSize"
android:padding="0dp"
app:contentInsetLeft="10dp"
app:contentInsetRight="10dp"
app:contentInsetStart="10dp"></android.support.v7.widget.Toolbar>

आपको जोड़ने की आवश्यकता है

contentInset

रिक्ति जोड़ने की विशेषता

कृपया इस लिंक का अनुसरण करें - Android टिप्स के लिए


3

का संयोजन

android:padding="0dp" टूलबार के लिए xml में

तथा

mToolbar.setContentInsetsAbsolute(0, 0) कोड में

इसने मेरे लिए काम किया।


1

यह मेरे लिए मेरे एंड्रॉयड 7.11 फोन पर काम करता है:

<!-- TOOLBAR -->
<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:contentInsetStartWithNavigation="0dp">

    <TextView
        style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/create_account_title"
        android:textColor="@color/color_dark_grey"/>

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

नोट: मुझे पैडिंग = 0, या contentInsetLeft = 0, या contentInsetStart = 0 के साथ कोई सफलता नहीं मिली


0

ठीक है, अगर आपको 72dp की आवश्यकता है, तो क्या आप सिर्फ xml फ़ाइल में पैडिंग में अंतर नहीं जोड़ सकते हैं? इस तरह से आप एंड्रॉइड को डिफ़ॉल्ट इनसेट / पैडिंग रखते हैं जो वे हमें उपयोग करना चाहते हैं।

तो: 72-16 = 56

इसके लिए: अपने आप को 72dp के इंडेंट / मार्जिन पर रखने के लिए 56dp पैडिंग जोड़ें।

या आप केवल Dimen.xml फ़ाइलों में मान बदल सकते हैं। अब मैं यही कर रहा हूं। यह सब कुछ बदल देता है, नया उचित एंड्रॉइड तरीके से लागू होने पर टूलबार सहित पूरा लेआउट।

Dimen संसाधन फ़ाइल

मैंने जो लिंक जोड़ा था वह 2dp पर डिमेन वैल्यू दिखाता है क्योंकि मैंने इसे बदल दिया था लेकिन यह 16dp पर डिफ़ॉल्ट रूप से सेट था। सिर्फ आपकी जानकारी के लिए...


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.