我在使用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>
如果有人遇到同样的问题,我很想得到想法...... 谢谢你的时间!
答案 0 :(得分:0)
如果要将布局设置为底部,请使用RelativeLayout作为父级并相应地设置视图。或者您可以使用LinearLayout和重量,您需要根据屏幕尺寸自动将重量1设置为中间布局,顶部和底部设置。
LinearLayout的布局权重:请参阅https://developer.android.com/guide/topics/ui/layout/linear.html
RelativeLayout:参考https://developer.android.com/reference/android/widget/RelativeLayout.html
答案 1 :(得分:0)
在上一次Linearlayout
高度为match parent
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:baselineAligned="false"
android:gravity="center">
</LinearLayout>
或强>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_weight="1" //add this
android:baselineAligned="false"
android:gravity="center">
<强>解释强>
此LinearLayout
内的所有项目占用一些空间,请确保包含按钮的最后一项LinearLayout
拉伸以占用所有剩余空间。设置android:layout_weight="1"
或设置高度match_parent