vertical studio separador recycler linearlayout horizontal android layout draw

recycler - separador android studio



Android Separador de dibujo/línea divisora en diseño? (30)

Me gustaría dibujar una línea justo en el medio de un diseño y usarla como separador de otros elementos como TextView. ¿Hay un buen widget para esto? Realmente no quiero usar una imagen ya que sería difícil hacer coincidir los otros componentes con ella. Y quiero que esté relativamente posicionado también. Gracias


Tengo la forma más fácil de agregar divisor.

Divisor vertical:

<View style="@style/dividerVertical"/>

Divisor horizontal:

<View style="@style/dividerHorizontal"/>

Eso es todo, sí!

Solo pon esto en res>values>styles.xml

<style name="dividerBase"> <item name="android:background">?android:attr/listDivider</item> //you can give your color here. that will change all divider color in your app. </style> <style name="dividerHorizontal" parent="dividerBase"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">1dp</item> // You can change thickness here. </style> <style name="dividerVertical" parent="dividerBase"> <item name="android:layout_width">1dp</item> <item name="android:layout_height">match_parent</item> </style>


Añadiendo esta vista; que dibuja un separador entre tus textviews

<View android:layout_width="match_parent" android:layout_height="1dp" android:background="#000000" />


Agrega un divisor horizontal a cualquier lugar en su diseño.

<TextView style="?android:listSeparatorTextViewStyle" android:layout_width="fill_parent" android:layout_height="wrap_content"/>


Agrega una línea negra horizontal usando esto:

<LinearLayout android:layout_width="match_parent" android:layout_height="1dp" android:background="#000000" android:layout_marginTop="10dp"/>


Agregue esto en su diseño donde desee el divisor (modifique los atributos para que se ajusten a sus necesidades):

<ImageView xmlns:android="http://schemas.android.com/apk/res/android" android:src="@android:drawable/divider_horizontal_dark" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="fitXY" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingBottom="2dp" android:paddingTop="2dp" />


Aquí está el código "una línea divisoria horizontal entre dos vistas de texto". Prueba esto

<TextView android:id="@id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="5dp" android:inputType="textPersonName" android:text:"address" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="@android:color/black"/> <TextView android:id="@id/textView7" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPersonName" android:text:"Upload File" />/>


Aquí está su respuesta ... este es un ejemplo para dibujar una línea entre los controles ...

<TextView android:id="@+id/textView1" style="@style/behindMenuItemLabel1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="1dp" android:text="FaceBook Feeds" /> <View android:layout_width="fill_parent" android:layout_height="2dp" android:background="#d13033"/> <ListView android:id="@+id/list1" android:layout_width="350dp" android:layout_height="50dp" />

Este código dibuja una línea entre dos controles ...


Divide el espacio en dos partes iguales:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:divider="?android:dividerHorizontal" android:showDividers="end"></LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"></LinearLayout> </LinearLayout>

Observe que una parte contiene un divisor al final


En los casos en los que uno utiliza la propiedad android:layout_weight para asignar espacio de pantalla disponible a los componentes del diseño, por ejemplo

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:orientation="vertical"> ... ... </LinearLayout> /* And we want to add a verical separator here */ <LinearLayout android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:orientation="vertical"> ... ... </LinearLayout> </LinearLayout>

Para agregar un separador entre los dos diseños existentes que ya ocupó todo el espacio de la pantalla, no podemos simplemente agregar otro LinearLayout con android:weight:"1" porque eso hará tres columnas de igual ancho que no queremos. En su lugar, disminuiremos la cantidad de espacio que le daremos a este nuevo diseño. El código final se vería así:

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:orientation="vertical"> ... ... </LinearLayout> /* *************** ********************** */ /* Add another LinearLayout with android:layout_weight="0.01" and android:background="#your_choice" */ <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="0.01" android:background="@android:color/darker_gray" /> /* Or View can be used */ <View android:layout_width="1dp" android:layout_height="match_parent" android:layout_marginTop="16dp" android:background="@android:color/darker_gray" /> /* *************** ********************** */ <LinearLayout android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:orientation="vertical"> ... ... </LinearLayout> </LinearLayout>


Es muy sencillo. Solo crea una vista con el color de fondo negro.

<View android:layout_width="match_parent" android:layout_height="1dp" android:background="#000"/>

Esto creará una línea horizontal con color de fondo. También puede agregar otros atributos como márgenes, rellenos, etc. como cualquier otra vista.


Esto te ayudaría a resolver este problema. Aquí se crea una pequeña vista para hacer una línea negra como separador entre dos vistas.

<View android:layout_width="3dp" android:layout_height="wrap_content" android:background="@android:color/black" />


Para completar la respuesta de Camille Sévigny, puede definir adicionalmente su propia forma de línea, por ejemplo, para personalizar el color de la línea.

Definir una forma xml en el directorio dibujable. line_horizontal.xml:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:shape="line"> <stroke android:width="2dp" android:color="@android:color/holo_blue_dark" /> <size android:width="5dp" /> </shape>

Utilice esta línea en su diseño con los atributos deseados:

<ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingBottom="2dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="2dp" android:src="@drawable/line_horizontal" />


Para mejorar las respuestas proporcionadas por y Dan Dar3

Agregué esto a mis estilos:

<style name="Divider"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">1dp</item> <item name="android:background">?android:attr/listDivider</item> </style>

Luego en mis diseños hay menos código y es más fácil de leer.

<View style="@style/Divider"/>


Por ejemplo, si utilizó recyclerView para sus artículos:

en build.gradle escribe:

dependencies { compile ''com.yqritc:recyclerview-flexibledivider:1.4.0''

Si desea configurar los valores de color, tamaño y margen, puede especificar como sigue:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview); recyclerView.addItemDecoration( new HorizontalDividerItemDecoration.Builder(this) .color(Color.RED) .sizeResId(R.dimen.divider) .marginResId(R.dimen.leftmargin, R.dimen.rightmargin) .build());


Puede usar este elemento <View> justo después de First TextView.

<View android:layout_marginTop="@dimen/d10dp" android:id="@+id/view1" android:layout_width="fill_parent" android:layout_height="1dp" android:background="#c0c0c0"/>


Puedes usar esto en LinearLayout :

android:divider="?android:dividerHorizontal" android:showDividers="middle"

Por ejemplo:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="?android:dividerHorizontal" android:showDividers="middle" android:orientation="vertical" > <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="abcd gttff hthjj ssrt guj"/> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="abcd"/> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="abcd gttff hthjj ssrt guj"/> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="abcd"/> </LinearLayout>


Si lo vas a usar mucho, lo mejor que puedes hacer es

styles.xml:

<style name="Seperator"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">1dp</item> <item name="android:background">@color/light_color</item> </style>

ahora en tu diseño, solo agrégalo como:

<View style="@style/Seperator" />


Si usa ActionBarSherlock, puede usar la clase com.actionbarsherlock.internal.widget.IcsLinearLayout para admitir divisores y mostrarlos entre las vistas.

ejemplo de uso:

<com.actionbarsherlock.internal.widget.IcsLinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:divider="@drawable/divider" android:dividerPadding="10dp" android:orientation="vertical" android:showDividers="beginning|middle|end" > ... children...

res / drawable / divider.xml:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <size android:height="2dip" /> <solid android:color="#FFff0000" /> </shape>

tenga en cuenta que por alguna razón, la vista previa en el diseñador gráfico dice "android.graphics.bitmap_delegate.nativeRecycle (I) Z". no estoy seguro de lo que significa, pero puede ignorarse, ya que funciona bien tanto en las nuevas versiones de Android como en las antiguas (probadas en Android 4.2 y 2.3).

Parece que el error solo se muestra cuando se utiliza API17 para el diseñador gráfico.


Solo escribe esto:

android:divider="?android:dividerHorizontal" android:showDividers="middle"

Ejemplo completo:

<LinearLayout android:id="@+id/llTipInformation" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/tvServiceRating" android:orientation="horizontal" android:divider="?android:dividerHorizontal" android:layout_marginTop="@dimen/activity_horizontal_margin" android:showDividers="middle"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:text="@string/main.msg.tippercent" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/colorWhite" android:layout_marginTop="@dimen/activity_vertical_margin"/> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:text="@string/main.msg.tiptotal" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/colorWhite" android:layout_marginTop="@dimen/activity_vertical_margin"/> </LinearLayout>


Usualmente uso este código para agregar una línea horizontal:

<View android:layout_width="match_parent" android:layout_height="1dp" android:background="@android:color/darker_gray"/>

Para agregar un separador vertical, cambie los valores layout_width y layout_height


Usualmente uso este código:

<ImageView android:id="@+id/imageView2" android:layout_width="match_parent" android:layout_height="1dp" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="10dp" android:background="#aa000000" />

Si tiene un objeto en su diseño y desea establecer una línea debajo que use este atributo en ImageView:

android:layout_below="@+id/textBox1"


Versión en tiempo de ejecución:

View dividerView = new View(getContext()); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, UIUtils.dpToPix(getContext(), 1)); dividerView.setLayoutParams(lp); TypedArray array = getContext().getTheme() .obtainStyledAttributes(new int[] {android.R.attr.listDivider}); Drawable draw = array.getDrawable(0); array.recycle(); dividerView.setBackgroundDrawable(draw); mParentLayout.addView(dividerView);


usa este código Ayudará

<LinearLayout android:layout_width="0dip" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1" android:divider="?android:dividerHorizontal" android:gravity="center" android:orientation="vertical" android:showDividers="middle" >


usa este código xml para agregar una línea vertical

<View android:layout_width="1dp" android:layout_height="match_parent" android:layout_centerVertical="true" android:background="#000000" />

usa este código xml para agregar una linea horizontal

<View android:layout_width="match_parent" android:layout_height="1dp" android:background="#000000" />


Solución simple

simplemente agregue este código en su diseño y reemplace ''Id_of__view_present_above'' al id de la vista, debajo del cual necesita el divisor.

<TextView android:layout_width="match_parent" android:layout_height="1dp" android:background="#c0c0c0" android:id="@+id/your_id" android:layout_marginTop="16dp" android:layout_below="@+id/Id_of__view_present_above" />


<ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingBottom="2dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="2dp" android:scaleType="fitXY" android:src="?android:attr/listDivider" />


<TextView android:id="@+id/line" style="?android:attr/listSeparatorTextViewStyle" android:paddingTop="5dip" android:gravity="center_horizontal" android:layout_below="@+id/connect_help" android:layout_width="match_parent" android:layout_height="1dp" android:background="#000" />


<View android:layout_width="2dp" android:layout_height="match_parent" android:layout_marginTop="4dp" android:background="@android:color/darker_gray" />

Entre dos diseños Ponga este código para obtener Divider.


<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <item android:bottom="0dp" android:left="-2dp" android:right="-2dp" android:top="-2dp"> <shape android:shape="rectangle"> <stroke android:width="1dp" android:color="@color/divider" /> </shape> </item>


//for vertical line: <View android:layout_width="1dp" android:layout_height="fill_parent" android:background="#00000000" /> //for horizontal line: <View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#00000000" /> //it works like a charm