我开发了一款键盘,可以毫无问题地在MM和更低版本上运行。顺便说一下,我有一个布局问题,检查这些图片以便更好地理解:http://imgur.com/a/IHfeZ。
第一张图片在Nougat上(弹出窗口没有完全显示)第二张图片就像是出现在MM上(所有线条都显示正确)。
我用这个xml来自定义弹出窗口:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@color/aosp_pressed">
<android.inputmethodservice.KeyboardView
android:layout_gravity="bottom"
android:id="@android:id/keyboardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:keyPreviewLayout="@layout/preview"
android:keyBackground="@drawable/key_background"
android:keyTextColor="#fff"
android:background="@color/aosp_background"
android:keyTextSize="25sp"/>
<ImageButton android:id="@android:id/closeButton"
android:background="@color/aosp_pressed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:clickable="true"
android:src="@drawable/ic_close_black" />
</LinearLayout>
&#13;
正如您所看到的,问题是由弹出窗口的位置引起的,该弹出窗口没有显示在键盘外部。我该如何解决这个问题? 在此先感谢大家。
答案 0 :(得分:0)
你的@ layout / preview是什么样的?
我的理论是,在Android 6和7之间,wrap_content选择它的大小发生了变化。
使用之前
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<TextView
android:id="@+id/xxxxx"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
</LinearLayout> //PARTIAL CODE!
6.0中没有问题。文本视图将展开以适合文本,然后居中。
然而,在7中,文本完全垂直显示,表明初始LinearLayout设置为宽度为0而不进行调整。
尝试在@ layout / preview或closeButton中使用高度。将它们设置为手动高度,看看情况是否相应变化!