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.
Esto fue respondido en el Rastreador de problemas de Android. El enlace es:
https://code.google.com/p/android/issues/detail?id=213826
Agregue app:contentInsetStartWithNavigation="0dp"
a la vista de la barra de herramientas.
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>