18

मैं सिर्फ एसडीके 23 का उपयोग करने से मेरे ऐप को नवीनीकृत किया है SDK के लिए 24.एंड्रॉयड - गतिविधि होम/ऊपर तीर एसडीके 24

एक समस्या मेरी गतिविधियों है कि दिखाने के लिए उत्पन्न हो गई है/साथ अतिरिक्त पेडिंग/मार्जिन है घर तीर (यानी, getSupportActionBar().setDisplayHomeAsUpEnabled(true)) जिसमें ऊपर तीर और गतिविधि शीर्षक के बीच अब अतिरिक्त (अवांछित) स्थान है।

उन गतिविधियों के लिए जिनके पास ऊपर तीर नहीं है, गतिविधि शीर्षक पहले जैसा ही है, जो अतिरिक्त पैडिंग/मार्जिन गतिविधि शीर्षक के बजाए ऊपर तीर से जुड़ा हुआ है।

मेरा सवाल यह है कि मैं लेआउट कैसे बदल सकता हूं ताकि यह एसडीके 24 के साथ जैसा दिखता हो जैसा एसडीके 23 के साथ किया गया हो?

ऊपर के बीच छोटे अंतराल के तीर और शीर्षक एसडीके 23 का उपयोग करते हुए: Small gap between Up arrow and title using SDK 23

बड़ा (अवांछित) ऊपर के बीच की खाई तीर और शीर्षक एसडीके 24 का उपयोग करते हुए: Large (unwanted) gap between Up arrow and title using SDK 24

यहाँ मेरे पुराने निर्माण है .gradle (एसडीके 23):

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     applicationId "com.example.myapp" 
     minSdkVersion 19 
     targetSdkVersion 23 
     versionCode 42 
     versionName "0.42" 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.google.android.gms:play-services-vision:9.0.2' 
    compile 'ch.acra:acra:4.7.0' 
    compile 'com.android.support:support-v4:23.4.0' 
    compile 'com.android.support:recyclerview-v7:23.4.0' 
    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.android.support:design:23.4.0' 
    compile 'com.android.support:support-v13:23.4.0' 
    compile 'com.journeyapps:zxing-android-embedded:[email protected]' 
    compile 'com.google.zxing:core:3.2.1' 
} 

यहां नया निर्माण है .gradle (एसडीके 24):

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 24 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     applicationId "com.example.myapp" 
     minSdkVersion 19 
     targetSdkVersion 24 
     versionCode 42 
     versionName "0.42" 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.google.android.gms:play-services-vision:9.0.2' 
    compile 'ch.acra:acra:4.7.0' 
    compile 'com.android.support:support-v4:24.0.0' 
    compile 'com.android.support:recyclerview-v7:24.0.0' 
    compile 'com.android.support:appcompat-v7:24.0.0' 
    compile 'com.android.support:design:24.0.0' 
    compile 'com.android.support:support-v13:24.0.0' 
    compile 'com.journeyapps:zxing-android-embedded:[email protected]' 
    compile 'com.google.zxing:core:3.2.1' 
} 
+3

जिस तरह से आप buildToolsVersion "24" – penguin

+0

का उपयोग कर सकते हैं, यदि मैं कोशिश करता हूं, तो यह कहता है कि "बिल्ड टूल्स संशोधन 24.0.0" ढूंढने में विफल रहा ... लेकिन यह आपको इसे इंस्टॉल करने के लिए एक लिंक भी देता है। :-) (संयोग से, इसने समस्या को ठीक नहीं किया है।) –

+0

क्या आपने एसडीके प्रबंधक से एंड्रॉइड एसडीके बिल्ड-टूल्स डाउनलोड किए हैं? – penguin

उत्तर

13

मुझे लगता है कि इस गद्दी एसडीके 24. सबसे पहले आप डिफ़ॉल्ट छिपाने चाहिए में सामग्री कल्पना मैच के लिए एक नया मानक है इस कोड द्वारा टूलबार शीर्षक:

getSupportActionBar()। setDisplayShowTitleEnabled (false);

फिर एक फ़ाइल 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" 
    app:contentInsetStartWithNavigation="0dp"> 

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

। toolbar.xml में इस लाइन को देखो:

एप्लिकेशन: contentInsetStartWithNavigation = "0dp"

यह तुम क्या चाहते है। सौभाग्य।

+0

ठीक किया है, इसलिए यहां मुख्य आवश्यकता है कि टूलबार के साथ एक्शनबार को प्रतिस्थापित करें। मुझे आपके टेक्स्ट व्यू की आवश्यकता नहीं थी, इसलिए यह मेरा टूलबार.एक्सएमएल था: ' ' –

+0

मैंने प्रत्येक गतिविधि लेआउट फ़ाइल में '<लेआउट =" @ लेआउट/टूलबार "/>' जोड़कर मेरी गतिविधियों में टूलबार जोड़ा। –

+0

और फिर मेरी सभी गतिविधियों के कोड को अपडेट करने का सबसे आसान तरीका यह तरीका मेरी बेसएक्टिविटी फ़ाइल (जो मेरी सभी गतिविधियां विस्तारित करता है) में जोड़ने के लिए था: –

24

एंड्रॉइड इश्यु ट्रैकर में इसका उत्तर दिया गया था। लिंक है:

https://code.google.com/p/android/issues/detail?id=213826

उपकरण पट्टी को देखने के लिए app:contentInsetStartWithNavigation="0dp" जोड़ें।

+1

यह वही है जो मैंने – percicjan

1

दूर करने के लिए अवांछित अंतरिक्ष आपके उपयोग के अनुसार इसका इस्तेमाल के लिए इस कोड का प्रयास करें: -

<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_bottom" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/red" 
    android:contentInsetLeft="0dp" 
    android:contentInsetStart="0dp" 
    app:contentInsetLeft="0dp" 
    app:contentInsetStart="0dp" 
    android:contentInsetRight="0dp" 
    android:contentInsetEnd="0dp" 
    app:contentInsetRight="0dp" 
    app:contentInsetEnd="0dp" 
    android:minHeight="?attr/actionBarSize"> 
</android.support.v7.widget.Toolbar> 
संबंधित मुद्दे