Android键盘,Nougat中的自定义popuplayout

时间:2017-01-17 20:52:04

标签: layout keyboard android-7.0-nougat

我开发了一款键盘,可以毫无问题地在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;
&#13;
&#13;

正如您所看到的,问题是由弹出窗口的位置引起的,该弹出窗口没有显示在键盘外部。我该如何解决这个问题? 在此先感谢大家。

1 个答案:

答案 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中使用高度。将它们设置为手动高度,看看情况是否相应变化!