【发布时间】:2023-03-13 08:27:01
【问题描述】:
我在使用 LinearLayout 时遇到了一些愚蠢的问题。 我在 setContentView 之前请求 NO_TITLE 功能,并且我的 Xaml 看起来像这样:
<LinearLayout
android:baselineAligned="false"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#E600323d"
tools:context="mycontext.Activities.dialogSignal"
android:layout_alignParentBottom="true"
android:gravity="center"
>
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="SOME TEXT"
android:textAlignment="center"
android:textColor="@color/LightBlue"
android:textSize="30sp"
app:layout_heightPercent="10%"/>
<!-- FIRST ROW -->
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
>
<ImageButton
android:onClick="bruitNavigate"
android:src="@drawable/someDrawable"
android:scaleType="fitCenter"
android:background="@android:color/transparent"
android:contentDescription="@string/descriptionContentSignal"
android:layout_width="match_parent"
android:layout_height="90dp"/>
<TextView
android:paddingTop="10dp"
android:text="@string/SomeString"
android:textSize="15sp"
android:textAlignment="center"
android:textColor="@color/LightBlue"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
>
<ImageButton
android:src="@drawable/someDrawable"
android:scaleType="fitCenter"
android:background="@android:color/transparent"
android:contentDescription="@string/descriptionContentSignal"
android:layout_width="match_parent"
android:layout_height="90dp"/>
<TextView
android:paddingTop="10dp"
android:text="SomeString"
android:textSize="15sp"
android:textAlignment="center"
android:textColor="@color/LightBlue"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
>
<ImageButton
android:src="@drawable/someDrawable"
android:scaleType="fitCenter"
android:background="@android:color/transparent"
android:contentDescription="@string/descriptionContentSignal"
android:layout_width="match_parent"
android:layout_height="90dp"/>
<TextView
android:paddingTop="10dp"
android:text="@string/SomeString"
android:textSize="15sp"
android:textAlignment="center"
android:textColor="@color/LightBlue"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<!-- SECOND ROW -->
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
>
<ImageButton
android:src="@drawable/someDrawable"
android:scaleType="fitCenter"
android:background="@android:color/transparent"
android:contentDescription="@string/descriptionContentSignal"
android:layout_width="match_parent"
android:layout_height="90dp"/>
<TextView
android:paddingTop="10dp"
android:text="SomeString"
android:textSize="15sp"
android:textAlignment="center"
android:textColor="@color/LightBlue"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
>
<ImageButton
android:src="@drawable/someDrawable"
android:scaleType="fitCenter"
android:background="@android:color/transparent"
android:contentDescription="@string/descriptionContentSignal"
android:layout_width="match_parent"
android:layout_height="90dp"/>
<TextView
android:paddingTop="10dp"
android:text="SomeString"
android:textSize="15sp"
android:textAlignment="center"
android:textColor="@color/LightBlue"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
>
<ImageButton
android:src="@drawable/someDrawable"
android:scaleType="fitCenter"
android:background="@android:color/transparent"
android:contentDescription="@string/descriptionContentSignal"
android:layout_width="match_parent"
android:layout_height="90dp"/>
<TextView
android:paddingTop="10dp"
android:text="@string/SomeString"
android:textSize="15sp"
android:textAlignment="center"
android:textColor="@color/LightBlue"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<!-- THIRD ROW -->
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
>
<ImageButton
android:src="@drawable/someDrawable"
android:scaleType="fitCenter"
android:background="@android:color/transparent"
android:contentDescription="@string/descriptionContentSignal"
android:layout_width="match_parent"
android:layout_height="90dp"/>
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:text="@string/SomeString"
android:textAlignment="center"
android:textColor="@color/LightBlue"
android:textSize="15sp"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
>
<ImageButton
android:src="@drawable/someDrawable"
android:scaleType="fitCenter"
android:background="@android:color/transparent"
android:contentDescription="@string/descriptionContentSignal"
android:layout_width="match_parent"
android:layout_height="90dp"/>
<TextView
android:paddingTop="10dp"
android:text="SomeString"
android:textSize="15sp"
android:textAlignment="center"
android:textColor="@color/LightBlue"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<Space
android:layout_width="0dp"
android:layout_height="120dp"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:baselineAligned="false"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_alignParentBottom="true"
android:gravity="center"
>
<ImageButton
android:id="@+id/imageButton"
android:layout_width="150dp"
android:layout_height="85dp"
android:layout_gravity="bottom|center"
android:background="@android:color/transparent"
android:scaleType="fitCenter"
android:src="@drawable/centralbutton"/>
<ImageButton
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:background="@android:color/transparent"
android:contentDescription="@string/accept"
android:onClick="closeView"
android:scaleType="fitCenter"
android:src="@drawable/cancel"
/>
</LinearLayout>
</LinearLayout>
因此,最后一个 LinearLayout(仅包含两个 ImageButtons)不与屏幕底部对齐,而是根据屏幕大小浮动在某处。
我正在应用这种样式来获得透明背景:
<style name="dialogStyle" parent="@android:style/Theme.Holo">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
如果有人遇到同样的问题,我很想得到想法...... 感谢您的宝贵时间!
【问题讨论】:
-
尝试在主布局中添加 fitSystemWindows 属性(true 或 false,不记得需要哪个)
标签: android xml android-linearlayout