如何在Android中制作具有多个标签/部分的键盘

时间:2016-04-09 20:40:56

标签: android android-layout keyboard

我已根据this tutorial成功为Android制作了一个非常基本的自定义键盘。

现在我完成了这个,我想知道,是否有可能在Android中制作一个有多个标签的键盘。

一个例子通常是键盘上有字母AZ但是如果用户点击顶部的按钮,键盘将切换到数字1 - 10,如果用户点击顶部的另一个按钮,键盘将切换到希腊语字母。

我可以解释的另一种方法是,无论如何以编程方式更改键盘将使用哪个xml布局文件?

这是一个例子。在这里"标签"是键盘顶部的时钟,笑脸,表冠,花朵,汽车,三角形和文字符号。

enter image description here

2 个答案:

答案 0 :(得分:1)

这是一个简单的解决方法。

我使用的服务类包含以下两个变量:

def my_wanted_match(example_set, conditions):
    conditions = conditions.items()
    match = []
    for e in example_set:
        if all([c in set(e.items()) for c in conditions]):
            match.append(e)
    return match

以下是按下按钮时会发生什么的代码:

match = [e for e in example_set
         if all([c in set(e.items()) for c in set(conditions.items())])]

该按钮可切换键盘的XML布局。

答案 1 :(得分:0)

我不认为标签是最适合你的方法。

我相信最适合您的方法是为每个布局创建CustomViews,将FrameLayout添加到屏幕并以编程方式将视图添加到布局中,使用removeAllViews删除其他视图。以下是构建CustomViews的教程:http://developer.android.com/intl/pt-br/training/custom-views/index.html

另一种选择是将所有自定义视图添加到布局中,并以编程方式进行更改,这将是可见的。

我不推荐的一个选项是使用片段,片段的生命周期很复杂,只会让你烦恼。