¿La razón detrás del margen extra de 8dp en una vista? No formas de resolver
En mi archivo xml de la actividad estoy obtener un margen extra 8dp en el lado izquierdo en la vista (representado como subrayado).
- Razón para obtener un margen de 8dp extra en "vista"? (Subrayado en TextView).
- He dado 48dp margen izquierdo en esa vista.
Por encima de esa vista tengo
- Personalizar ActionBar en Android usando ActionbarSherlock y jeremyfeinstein slidingmenu
- Android: ¿Acabo de tener un disparo por propiedad mediante el uso de temas? ¿No hay nada como CSS en Android?
- ¿Cómo puedo crear una vista semanal del calendario para una aplicación Android Honeycomb?
- Error: no se encontró identificador de recurso para el atributo "showAsAction" en el paquete android
- TextView "fill_parent" no rellena el padre
<TextView> which has a drawable icon in left.
- Con el margen izquierdo 24dp y el relleno estirable 24dp.
Razón de hacer.
- Estoy tratando de crear un subrayado bajo mis palabras usando una vista con fondo negro.
-
He dado 48dp como margen izquierdo en xml.but como se muestra en la foto que estoy recibiendo 56dp.
-
La diferencia entre las líneas es 8dp.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:background="#FAFAFA" android:orientation="vertical" tools:context="com.hysterics.delhishop.AccountSetting"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="32dp" android:layout_marginTop="16dp" android:gravity="center|left" android:paddingLeft="16dp" android:textAllCaps="true" android:textStyle="bold" android:text="@string/hello_user" android:textColor="@color/primary_text" android:textSize="15sp"/> <TextView android:id="@+id/user_account_information" android:layout_width="match_parent" android:layout_height="54dp" android:layout_marginLeft="24dp" android:drawableLeft="@drawable/ic_account_box_black_18dp" android:drawablePadding="24dp" android:gravity="center|left" android:textAllCaps="true" android:textStyle="bold" android:text="@string/account_information" android:textColor="@color/primary_text" android:textSize="15sp"/> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="center" android:layout_marginLeft="48dp" android:background="@android:color/darker_gray"/> <TextView android:layout_width="match_parent" android:layout_height="54dp" android:layout_marginLeft="24dp" android:drawableLeft="@drawable/ic_home_black_18dp" android:drawablePadding="24dp" android:gravity="center|left" android:textAllCaps="true" android:textStyle="bold" android:text="@string/account_address" android:textColor="@color/primary_text" android:textSize="15sp"/> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="center" android:layout_marginLeft="48dp" android:background="@android:color/darker_gray"/> ................ ................ </LinearLayout> </ScrollView>
Aquí está mi archivo de actividad.
public class AccountSetting extends AppCompatActivity { public static final String TAG_USER_NAME_DIALOG = "edit_text_dialog"; @InjectView(R.id.account_setting_toolbar) Toolbar accountSettingToolbar; @InjectView(R.id.user_account_information) TextView userAccountInformation; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_account_setting); ButterKnife.inject(this); setToolbar(); }
- Gracias en adavnce 🙂
- ¿Cómo puedo utilizar varios valores para las propiedades de diseño XML de Android?
- ¿Puede el color central ser reposicionado en un androide radial-gradiente dibujable?
- XML Layout - Identificador de entrada 0x11a es más grande que el recuento de entradas 0xb2
- Diseñar un diseño como debajo de la imagen con botones de imagen en android
- ¿Cómo cambiar el color del icono que se coloca dentro de edittext?
- Android BitmapDrawable setTileModeX no funciona en TextView
- Disposición de la actividad: Clase de fragmento: vs android: atributos de nombre
- EditText - Intervalo entre el texto y la línea de EditText
Debido a que establece la vista de subrayado layout_width = "match_parent" y layout_gravity = "center".
Después de las vistas medir:
– el ancho de la vista primaria lineal es 1080px;
– el ancho de la vista de subrayado es 936px (debido a layout_marginLeft = "48dp" (144px))
Cuando el diseño de las vistas:
– Debido a que la orientación de los padres lineales es "vertical", por lo que cuando se establece layout_gravity = "center" igual a layout_gravity = "center_horizontal".
– Para un niño "center_horizontal", el padre linear margará el X-center de la vista secundaria con su X-center
Así que el eje X de la vista de subrayado será (en px):
540 (X-center of parent) + 144 (48dp margin left) - 468 (half of child's width) = 216px (72dp)
Por eso con layout_gravity = "center", verá que la vista de subrayado obtendrá un margen adicional de 24dp.
Usted está agregando el relleno dibujable al icono y el marginLeft es completamente diferente entre el subrayado y el icono. Y también tienes que tener en cuenta el tamaño del icono en sí. Me sorprendería que tendría exactamente la misma alineación.
En lugar de esto, ¿por qué no utiliza un LinearLayout horizontal con peso entre dos diseños lineales, uno con el icono y otra vista transparente con la misma altura que el subrayado y el otro diseño lineal que contiene texto y subrayado perfectamente alineados. Sin márgenes no hay nada, sólo distribución de peso. Algo como esto:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="100dp" android:orientation="horizontal" android:weightSum="10"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2" android:orientation="vertical"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" /> <View android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="8" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Account Information" android:textSize="20sp" /> <View android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout>
Esta es sólo una posible solución que puede garantizar alineaciones exactas.
Debido a que su ancho de vistas es match_parent & android:layout_marginLeft
& android:layout_gravity="center"
está causando que la vista cambie fuera de la pantalla.
Vea esto para más información..
Pruebe con la eliminación de layout_gravity de su Centro de vistas (que dibuja la línea)
android:layout_gravity="center"
y use
android:layout_marginLeft="@dimen/space_large"
en lugar de
android:layout_marginLeft="@dimen/space_xxlarge"
Según estas dos líneas:
android:drawableLeft="@drawable/ic_account_box_black_18dp" android:drawablePadding="@dimen/space_large"
Tendrás un 18dp
de 18dp
de ancho, luego un relleno de @dimen/space_large
, que parece ser de 24dp
para un total de 42dp
de relleno entre el borde izquierdo del TextView
y el inicio del texto en sí.
Sin embargo, el layout_marginLeft
en sus líneas es @dimen/space_xxlarge
o 48dp
. Como uno es 42dp
y el otro es 48dp
, no se alinean. Tendrá que cambiar uno u otro si desea que los elementos aparezcan visualmente en línea.
<View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="center" android:layout_marginLeft="48dp" android:background="@android:color/darker_gray"/>
Hay varias vistas en tu diseño y estás usando layout_gravity = "center". Así que View
está intentando ajustarse al centro dentro de LinearLayout
. Sólo intenta quitar layout_gravity
o usa layout_gravity="left"
.
Has agregado marginLeft de 24dp también drawablePadding de 24dp y dices un total de 48dp Pero te olvidas del ancho del icono dibujable. Por lo tanto, la primera de la CUENTA "A" no tiene un margen de 48dp.
Usted está usando LinearLayout
y everyting está en el lado izquierdo así que no hay necesidad de ninguna gravedad.
También dice que la eliminación de la gravedad de la View
hace 36dp de la izquierda. Si eso es correcto. Te has perdido el ancho de Drawable Icon de tu cálculo.
El layout_margin
de View
es igual a 48dp + width of icon
. Esa es la razón por la que tienes, creo.
Solo quita
android:layout_gravity="center"
- AndEngine Android-Studio linker Error durante la construcción
- Sugerencia de posicionamiento dentro de varias líneas EditText – TextInputLayout