屏幕顶部的背景使用以下主题,并且应该是透明的。在纵向模式下,背景变为黑色。有时这甚至不会发生,背景保持透明。为了测试这一点,我使用了TED文本编辑器应用程序。正如我所说,在TED中,背景在纵向模式下变黑。我编写了自己的活动,其中包含多行文本输入字段,在此活动中,背景显示正确。在另一个示例中,当我尝试撰写新电子邮件时,我的Gmail应用中的背景在纵向模式下变为白色。
我也在下面展示了IME的一些布局。
<resources>
<!-- some styles here -->
<style name="AppTheme.Custom" parent="AppTheme.NoActionBar">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent" >false</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowCloseOnTouchOutside">true</item>
<item name="android:colorBackgroundCacheHint">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowContentOverlay">@android:color/transparent</item>
<item name="android:backgroundDimAmount">0.5</item>
</style>
</resources>
这里是IME的一些布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1"
android:theme="@style/AppTheme">
<LinearLayout
android:background="#00000000"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:theme="@style/AppTheme.Custom"
android:layout_gravity="top"
android:id="@+id/topHalf"></LinearLayout>
<include layout="@layout/content_main"
android:layout_weight="0.5"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/AppTheme"
android:layout_gravity="bottom"
/>
</LinearLayout>
</FrameLayout>
答案 0 :(得分:0)
所以如果我使用布局来填充屏幕,那么使用权重将布局分成两部分,然后使布局的上半部分透明,这不会起作用,因为当你点击透明区域时,它仍然在布局中,并且样式规则按照它所说的“windowCloseOnTouchOutside&#39;”工作。我要做的是设置覆盖整个屏幕的单一布局,然后以编程方式测量整个屏幕,重新将布局大小设置为屏幕大小的一半(再次以编程方式)并设置重力到底部。下面是用于测量屏幕尺寸的代码,下面是用于调整布局大小的代码。
inputView = (RelativeLayout) getLayoutInflater().inflate(R.layout.content_main, null);
...
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, val.mWindowHeight/2);
lp.gravity = Gravity.BOTTOM ;
lp.height = val.mWindowHeight/2;
inputView.setLayoutParams(lp);
调整布局大小。在我的情况下,我需要自己夸大布局。
configuration {
ForEach ($ShareProperties in $MyConfig) {
# Each resource is named after the Path specified, but with the colon replaced as that's not valid character for the resource name
if ($ShareProperties.ChangeAccess -eq $null) {
cLocalFileShare $ShareProperties.Path.Replace(':','__') {
Path = $ShareProperties.Path
Name = $ShareProperties.Name
Ensure = $ShareProperties.Ensure
ReadAccess = $ShareProperties.ReadAccess
}
}
else
{
cLocalFileShare $ShareProperties.Path.Replace(':','__') {
Path = $ShareProperties.Path
Name = $ShareProperties.Name
Ensure = $ShareProperties.Ensure
ChangeAccess = $ShareProperties.ChangeAccess
ReadAccess = $ShareProperties.ReadAccess
}
}
}
}
我希望这有助于某人。