相对布局不覆盖屏幕的宽度
The Relative Layout doesn't cover the width of the screen
我正在制作一个使用相对布局在屏幕上创建透明黑色 activity 的应用程序,但它创建的布局不适合我的 phone 屏幕宽度.
这是我编码的结果
这是我的 xml 文件。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#A6000000"
>
</RelativeLayout>
</RelativeLayout>
这里是我用来创建透明的styles.xmlactivity
<style name="Theme.Transparent" parent = "android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
我已经为宽度和高度设置了 match_parent。谢谢。
您需要在您的 styles.xml
中为您的 Theme.Transparent
进行设置:
<item name="android:windowIsFloating">false</item>
浮动 window 通常是一个对话框,因此两边都有自动间距。将此设置为 false 会删除此自动间距。你可以阅读更多关于它的内容 in the related documentation,特别是:
... whether this window is being displayed with a floating style (based on the R.attr.windowIsFloating
attribute in the style/theme).
尽管如此,如果您要进行全屏显示 RelativeLayout
,有人想知道为什么您毕竟需要透明度...!
用这个改变style.xml。
<style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
<item name="android:background">#33000000</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>
在清单中
<activity
android:theme="@style/Theme.AppCompat.Translucent"
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我将使用单父多视图的 Constraintlayout
<?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"
>
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#A6000000"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
</View>
</androidx.constraintlayout.widget.ConstraintLayout>
我正在制作一个使用相对布局在屏幕上创建透明黑色 activity 的应用程序,但它创建的布局不适合我的 phone 屏幕宽度.
这是我编码的结果
这是我的 xml 文件。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#A6000000"
>
</RelativeLayout>
</RelativeLayout>
这里是我用来创建透明的styles.xmlactivity
<style name="Theme.Transparent" parent = "android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
我已经为宽度和高度设置了 match_parent。谢谢。
您需要在您的 styles.xml
中为您的 Theme.Transparent
进行设置:
<item name="android:windowIsFloating">false</item>
浮动 window 通常是一个对话框,因此两边都有自动间距。将此设置为 false 会删除此自动间距。你可以阅读更多关于它的内容 in the related documentation,特别是:
... whether this window is being displayed with a floating style (based on the
R.attr.windowIsFloating
attribute in the style/theme).
尽管如此,如果您要进行全屏显示 RelativeLayout
,有人想知道为什么您毕竟需要透明度...!
用这个改变style.xml。
<style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
<item name="android:background">#33000000</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>
在清单中
<activity
android:theme="@style/Theme.AppCompat.Translucent"
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我将使用单父多视图的 Constraintlayout
<?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"
>
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#A6000000"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
</View>
</androidx.constraintlayout.widget.ConstraintLayout>