长按添加到AlertDialog的EditText通常应显示上下文ActionBar,但在使用AppCompat时,上下文ActionBar会出现在状态栏后面。上下文ActionBar也不可点击。
直接从活动中显示AlertDialog时可以看到相同的行为。
测试了Android版本: 4.4,5.0,5.1
AppCompat版本: 22.1.1和22.1.0
源代码(Gradle模块): Google Drive
我尝试添加<item name="android:windowFullscreen">false</item>
,但这并不能解决问题。
我可以做什么使上下文ActionBar看起来正常?
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button).setOnClickListener(this);
}
@Override
public void onClick(View view) {
EditText customView = new EditText(this);
customView.setText("Select me");
AlertDialog.Builder test = new AlertDialog.Builder(this);
test.setView(customView);
test.setPositiveButton("Close", null);
test.setTitle("ActionMode test");
test.show();
}
}
styles.xml
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="alertDialogTheme">@style/Theme.Test.AlertDialog</item>
</style>
<style name="Theme.Test.AlertDialog" parent="@style/Theme.AppCompat.Light.Dialog.Alert">
<!-- Removing android:windowFullscreen yields same result -->
<item name="android:windowFullscreen">false</item>
</style>
</resources>
答案 0 :(得分:0)
正如他所说的那样,罗尔夫创造了AOSP Issue 170658。该问题已被关闭为170105的副本。问题170105表示问题已在内部修复,并将出现在AppCompat库的未来版本中。没有迹象表明何时可能发生这种释放。