studio programacion para móviles español edición desarrollo desarrollar curso aprende aplicaciones android android-layout android-actionbar android-sdk-tools android-actionbar-compat

programacion - Android-Activity Home/Up arrow tiene relleno/margen adicional con SDK 24



manual programacion android español pdf (3)

Acabo de actualizar mi aplicación de usar SDK 23 a SDK 24.

Ha surgido un problema para mis actividades que muestran la flecha Arriba / Inicio (es decir, getSupportActionBar().setDisplayHomeAsUpEnabled(true) ) en que ahora hay espacio adicional (no deseado) entre la flecha Arriba y el título de la actividad.

Para las actividades que no tienen una flecha hacia arriba, el título de la actividad está exactamente en el mismo lugar que antes, lo que sugiere que el margen / relleno adicional está asociado con la flecha hacia arriba en lugar de con el título de la actividad.

Mi pregunta es ¿cómo cambio el diseño para que se vea igual con el SDK 24 que con el SDK 23?

Pequeño espacio entre la flecha hacia arriba y el título con SDK 23:

Gran espacio (no deseado) entre la flecha hacia arriba y el título con SDK 24:

Aquí está mi antiguo build.gradle (SDK 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:3.2.0@aar'' compile ''com.google.zxing:core:3.2.1'' }

Aquí está el nuevo build.gradle (SDK 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:3.2.0@aar'' compile ''com.google.zxing:core:3.2.1'' }


Creo que este relleno es un nuevo estándar para coincidir con la especificación de material en el SDK 24. Primero, debe ocultar el título predeterminado de la barra de herramientas con este código:

getSupportActionBar (). setDisplayShowTitleEnabled (false);

Luego haga un archivo llamado toolbar.xml y agregue estos códigos en ese archivo:

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

Como ves, puedes controlar todo en este archivo. Mira esta línea en toolbar.xml:

aplicación: contentInsetStartWithNavigation = "0dp"

Esto es lo que quieres. Buena suerte.



intente este código para eliminar el espacio no deseado, utilícelo de acuerdo con su uso: -

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