#android #android-layout
#Android #android-layout
Вопрос:
Как я могу сделать фон линейного макета прозрачным?
Я хочу сделать область вокруг кнопки «Поделиться» прозрачной. Я пробовал различные решения, такие как
android:background="@android:color/transparent"
и
android:alpha="0"
и многие другие решения, но ни одно из них, похоже, не работает.
Как я могу сделать эту область прозрачной для изображения и других элементов?
Я также пробовал макет фрейма, но он также не работает.
Вот мой XML-код:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:theme="@style/Theme.MaterialComponents"
tools:context=".ReadMoreActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingBottom="100dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@ id/readMoreImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitCenter" />
<TextView
android:id="@ id/readMoreTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Card Title"
android:textAlignment="center"
android:textColor="#000000"
android:textSize="30dp" />
<TextView
android:id="@ id/readMoreDesc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:paddingBottom="20dp"
android:text="Card description"
android:textAlignment="textStart"
android:textColor="#000000" />
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_gravity="center"
android:layout_marginTop="-100dp"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@ id/shareButton"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:paddingLeft="50dp"
android:paddingRight="50dp"
android:text="Share"
android:textColor="#ffff"
android:textSize="25dp"
app:backgroundTint="#9C27B0"
app:strokeColor="#9C27B0"
app:strokeWidth="2dp" />
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Комментарии:
1. Вы хотите, чтобы человек-паук был фоном на весь экран и кнопкой внизу, которая будет отображаться на прозрачном линейном изображении?
2. Я просто хочу, чтобы вся белая область вокруг кнопки «Поделиться» была прозрачной.
3. Я думаю, что вы вставили незавершенный код. Когда я вставляю этот код в AS и устанавливаю фон для корневого контейнера, линейный макет становится прозрачным. Я думаю, что сложно воссоздать макет изображения с помощью кода. Вы хотите, чтобы ваш окончательный макет выглядел так ?
4. @iknow На самом деле это похоже на сообщение в блоге, сначала есть изображение, затем заголовок, затем описание, все извлеченное из firebase. Все это в режиме прокрутки, и я хочу, чтобы статическая кнопка в конце экрана была там, и мы могли прокручивать остальную часть экрана. Для этого я использовал макет внутри макета, но, как вы можете видеть, эта белая область вокруг кнопки «Поделиться» все портит, пожалуйста, помогите мне.
5. Я добавил ответ, проверьте его и дайте мне знать, если это то, что вы хотели сделать. Если да, не стесняйтесь принять и поддержать: D
Ответ №1:
Если я правильно вас понял, вы можете сделать это следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/Theme.MaterialComponents"
>
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher_background"
/>
<TextView
android:id="@ id/readMoreTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Card Title"
android:textAlignment="center"
android:textColor="#000000"
android:textSize="30sp"
/>
<TextView
android:id="@ id/readMoreDesc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:text="@string/long_card_desc"
android:textAlignment="textStart"
android:textColor="#000000"
>
</TextView>
</LinearLayout>
</ScrollView>
<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:backgroundTint="#880E4F"
android:text="Share"
android:textColor="#FFF9C4"
app:cornerRadius="15dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:strokeColor="#006064"
app:strokeWidth="1dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
Теперь кнопка прилипает к нижней части экрана, и вы можете прокручивать содержимое.
Результат (слева вид с прокруткой, а справа начальный вид):
Комментарии:
1. спасибо, ты спас меня, брат / сестра!!! и еще одно приложение: cornerRadius = «xdp» не работает в вашем решении, как я могу это отредактировать.
2. К какому виду вы хотите применить
cornerRadius
?3. Я отредактировал свой ответ, теперь вы можете применить радиус к кнопке. Вы не могли сделать это раньше, потому что вы установили
background
атрибут, и я просто скопировал вашу кнопку.4. спасибо за решение. Знаете ли вы, как улучшить эти концепции проектирования?
5. Добро пожаловать. Трудно сказать, я тоже новичок в Material Design, но вы можете проверить здесь .