android — кнопка меняет фон страницы на серый

#android #xml #android-layout

#Android #xml #android-макет

Вопрос:

Решаемая

У меня есть вид прокрутки, внутри которого есть макет макета ограничения. У меня есть кнопка, которая ограничена нижней частью таблицы, но, похоже, она меняет фон под таблицей на серый. у всех других виджетов, которые я добавил, нет такой же проблемы.

Скриншот проблемы

Я удалил внутренний код таблицы, поскольку он не нужен

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


    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@ id/imageView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@drawable/gaapic" />


        <androidx.cardview.widget.CardView
            android:id="@ id/homecard"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:elevation="5dp"
            app:cardBackgroundColor="@color/white"
            app:cardCornerRadius="15dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.8"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@ id/imageView3">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginTop="12dp"
                    android:padding="12dp"
                    android:text="@string/recent_news"
                    android:textColor="@color/black"
                    android:textSize="20sp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@ id/tvhomePageDate"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="9"
                    android:gravity="center"
                    android:text="@string/publish_date"
                    android:textColor="@color/black"
                    android:textSize="14sp"
                    android:textStyle="bold" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dp"
                    android:lineSpacingMultiplier="1.5"
                    android:padding="12dp"
                    android:text="@string/in_news"
                    android:textSize="13sp" />


            </LinearLayout>
        </androidx.cardview.widget.CardView>


        <TableLayout
            android:id="@ id/tableLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:background="@android:color/white"
            android:elevation="90dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@ id/homecard">

            <!-- Table Heading -->
            <TableRow android:background="@color/teal_200">

               

          

        </TableLayout>


        <TextView
            android:id="@ id/tvTimeCheck"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.092"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@ id/tableLayout"
            app:layout_constraintVertical_bias="0.589" />

        <Button
            android:id="@ id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="Live"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="1.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@ id/tableLayout"/>




    </androidx.constraintlayout.widget.ConstraintLayout>

</ScrollView>
 

Ответ №1:

Попробуйте добавить следующее в свой или ScrollView ConstraintLayout :

 android:background="@android:color/white"
 

Комментарии:

1. У меня уже установлен фон на белый, только эта часть страницы серая.

2. Я не вижу, где вы установили его на белый. Однако, еще одна вещь, которую вы можете попробовать, это поместить кнопку внутри другого макета (т.Е. Framelayout / Linearlayout) с белым фоном, затем иметь width= parent и height= wrap_content .

3. все еще серый. Кажется, что каждый раз, когда я добавляю после таблицы, пространство между таблицей и новым виджетом становится серым

4. Если вы можете поделиться своим кодом на GitHub, я могу вытащить его и изучить его подробнее для вас. Моя первоначальная мысль по-прежнему заключается в том, что цвет фона Activity / Fragment по умолчанию — серый, поэтому я пытался отредактировать родительские макеты, чтобы они были белыми.

5. Я решил свою проблему, у меня возникла идея поместить таблицу в новый макет от вас, но я не могу поддержать комментарий, так что спасибо. @Shn_Android_Dev

Ответ №2:

Решаемая:

Я решил свою проблему, поместив таблицу внутри другого макета ограничений. Я не знаю, является ли это лучшей практикой, но пока это работает. Спасибо @Shn_Android_Dev

Ответ №3:

Вы пытались добавить .setBackgroundDrawable(null) к вашей кнопке внутри вашего класса?

Пример:

 yourButton.setBackgroundDrawable(null);