猿问

Android LinearLayout,设置背景为透明

我正在给一个bottom_sheet_layout. 它包含一个 LinearLayout 作为根元素。它有一个子 CardView。


我试过以下方法:


setting `android:background` property to 

    1. #00FFFFFF

    2. #00000000

    3. @android:color/transparent


setting the background color of LinearLayout programatically


    `LinearLayout l = container.findViewById(R.id.root_element);

     l.setBackgroundColor(Color.TRANSPARENT);`

这是BottomSheet.Class链接到bottom_sheet_layout


@Override

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {


View v = inflater.inflate(R.layout.bottom_sheet_layout, container, false);

LinearLayout l = container.findViewById(R.id.root_element);

l.setBackgroundColor(Color.TRANSPARENT);

return v;

}

这是Map Fragment。这是我充气的地方bottom_sheet_layout


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

<fragment xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:map="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/map"

android:name="com.google.android.gms.maps.SupportMapFragment"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MapsActivity" />

按照几个指南,我仍然无法使该#00FFFFFF方法起作用。以编程方式将颜色设置为透明会使应用程序崩溃。


似乎在 StackOverflow 的早期问题中,将背景设置为具有 alpha 值的十六进制代码用于工作。现在我只有一个暗灰色的背景。

应用截图

  1. 图像布局

  2. 应用截图


Smart猫小萌
浏览 751回答 3
3回答

月关宝盒

如果您不使用MapView,我认为您是bottom_sheet_layout在同一片段中对 Google Map + 进行充气。如果是,我认为您的问题不是 LinearLayout 透明度,而是您插入bottom_sheet_layout到片段容器的底部,而不是地图上方。您可以将此布局用于您的地图片段(androidx,但如果您使用的是 android,则非常相似)<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"&nbsp; &nbsp; xmlns:tools="http://schemas.android.com/tools"&nbsp; &nbsp; xmlns:app="http://schemas.android.com/apk/res-auto"&nbsp; &nbsp; android:orientation="vertical"&nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; android:layout_height="match_parent">&nbsp; &nbsp; <!-- use this fragment for your google map -->&nbsp; &nbsp; <fragment&nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/google_map"&nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="match_parent"&nbsp; &nbsp; &nbsp; &nbsp; />&nbsp; &nbsp; <!-- use this fragment for your bottom_sheet class -->&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <fragment&nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/bottom_sheet"&nbsp; &nbsp; &nbsp; &nbsp; android:layout_margin="16dp"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // with this you do not need the LinearLayout root_element&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="match_parent"&nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="wrap_content"&nbsp; &nbsp; &nbsp; &nbsp; app:layout_constraintBottom_toBottomOf="parent"/></androidx.constraintlayout.widget.ConstraintLayout>然后,您可以使用您的CardView( 或LinearLayout)visibility来显示或不显示该卡。其他布局也是可能的,比如直接使用卡片视图而不是Fragment.

桃花长相依

我想我可以为您提供某种解决方案,您也可以尝试看看是否可行。在 .java文件中使用alpha 属性根据您的轻松程度调整值LinearLayout l = container.findViewById(R.id.root_element);l.setAlpha(0.4);您也可以在 XML 文件中使用 alpha:<LinearLayout&nbsp; android:id="@+id/l1"&nbsp; android:alpha="0.5"&nbsp; android:layout_width="190dp"&nbsp; android:layout_height="match_parent">0.0 表示完全透明,1.0 表示完全不透明。让我知道是否有任何解决方案适合您。然而,在这里做更多的研究,你一定会得到一个解决方案。快乐的编码。

慕婉清6462132

尝试背景为空。<LinearLayout&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:orientation="vertical"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="wrap_content"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="match_parent"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; android:background="@null">&nbsp; &nbsp; &nbsp; &nbsp; ......&nbsp; &nbsp; &nbsp; </LinearLayout>
随时随地看视频慕课网APP

相关分类

Java
我要回答