Android Studio (XML): исчезла вертикальная линия на кнопках - PullRequest
0 голосов
/ 21 июня 2020

Я пытаюсь вставить небольшую строку между двумя кнопками, как показано ниже: enter image description here

However, when I inserted a line, I have two problems: (1) the line fills the entire page and (2) the line disappears when I add elevation=10dp. Somehow, the line does not reduce its size even if I put alignTop=NIV and alignBottom=NIV.

disappeared line

How can I fix these problems?

Just in case you find it useful, my XML file is here:

<?xml version="1.0" encoding="utf-8"?>
    

Ответы [ 3 ]

1 голос
/ 21 июня 2020

Надеюсь, этот пример кода поможет вам, поэтому группа просмотра (Linear Layout) сохранит желаемый цвет фона. Тогда у вас может быть 3 вида внутри; a button, a view for the line, and another button. Я установил фон кнопки с ?attr/selectableItemBackgroundBorderless, чтобы получить эффект ряби с невидимым фоном. Наконец, представление с 2dp для примера с родительским элементом соответствия высоты, добавьте верхнее и нижнее поля.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorAccent">

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="?attr/selectableItemBackgroundBorderless"
            android:text="NIV" />

        <View
            android:layout_width="2dp"
            android:layout_height="match_parent"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp"
            android:background="@color/colorPrimary"/>

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="?attr/selectableItemBackgroundBorderless"
            android:text="KJV" />

    </LinearLayout>


</LinearLayout>

Результат, правая кнопка - при удержании нажатой

1 голос
/ 21 июня 2020

Для относительной компоновки переменная ориентации не нужна, она не нужна. Вместо того, что вы пытаетесь сделать, я рекомендую вам переписать его с помощью LinearLayout. Для этого вам не нужны 2 вложенных относительных макета, просто у вас может быть просто линейный макет, расположенный по горизонтали, TextView, ImageView / View для строки и, наконец, TextView. Добавив некоторые отступы к каждому View в linearlayout, вы сможете создать более чистый и простой проект XML, который будет более удобен в обслуживании, чем тот, который у вас есть в настоящее время. Взгляните на документацию LinearLayout для получения дополнительной информации. https://developer.android.com/reference/android/widget/LinearLayout

1 голос
/ 21 июня 2020

Я пробовал это в своей системе, и проблема в том, что вы заключаете кнопки в относительный макет. Попробуйте включить в линейный макет с ориентацией = горизонтальной. Вот код, который у меня сработал. Хотя я сделал только кнопки и ничего больше, надеюсь, это сработает и для вас.

XML Файл: -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/colorAccent"
            android:text="KJV"
            android:textColor="@color/colorPrimary"/>

        <View
            android:layout_width="1dp"
            android:layout_alignParentBottom="true"
            android:background="@android:color/black" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/colorAccent"
            android:text="NIV"
            android:textColor="@color/colorPrimaryDark" />

</LinearLayout>

А вот дизайн этого XML: -

введите описание изображения здесь

...