在我的项目中设置表情符号

时间:2016-10-13 07:28:20

标签: android github emoji

我提到了 https://github.com/vanniktech/Emoji

但我得到一个错误。我做了他所说的一切

final EmojiPopup emojiPopup = EmojiPopup.Builder.fromRootView(rootView).build(emojiEditText);   

(下面是“打开EmojiPopup执行上面的代码:”行)

无法解决rootView

我无法理解这里的rootview是什么。

提前多多感谢

3 个答案:

答案 0 :(得分:0)

rootView是布局xml文件的rootView,它将用于计算键盘的高度。 emojiEditText是您在布局xml文件中声明的EmojiEditText。

这将是一个View子类,您可以通过膨胀xml布局来实例化它。

他在示例中使用的布局是this one,其夸大如下:

rootView = (ViewGroup) findViewById(R.id.main_activity_root_view);

已提取from his own code samples 。这将是上例中的rootView。

答案 1 :(得分:0)

我遇到了同样的问题...

首先在您的 splash活动应用程序类中安装emoji安装程序-基本上,必须在活动中的onCreate中将布局放大之前执行它。否则,布局将无法识别此<com.vanniktech.emoji.EmojiEditText />

// Init Emoji
EmojiManager.install(new IosEmojiProvider());

您还需要一个jugutier解释过的rootview。
在您的 xml文件中,声明这样的视图窗口小部件(用于约束布局)

<View
   android:id="@+id/a_chat_v_keyboard"
   android:layout_width="match_parent"
   android:layout_height="200dp"
   app:layout_constraintBottom_toTopOf="@+id/view3"
   app:layout_constraintEnd_toEndOf="parent"
   app:layout_constraintHorizontal_bias="0.5"
   app:layout_constraintStart_toStartOf="parent" />

您可以在活动课程中使用以下内容。

声明

private View vKeyboard;

绑定

vKeyboard = findViewById(R.id.a_chat_v_keyboard);

然后在您的活动中,您可以像这样弹出键盘

final EmojiPopup emojiPopup = EmojiPopup.Builder.fromRootView(vKeyboard)
                                                .build(etTextMessage);

ivEmoticonToggle.setTag(1);

ivEmoticonToggle.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        emojiPopup.toggle();

        if (ivEmoticonToggle.getTag().equals(1)) {

            ivEmoticonToggle.setImageResource(R.drawable.keyboard);
            ivEmoticonToggle.setTag(2);

        } else {

            ivEmoticonToggle.setImageResource(R.drawable.emoticon);
            ivEmoticonToggle.setTag(1);

        }

    }
});

答案 2 :(得分:0)

如果您在 FirstActivity 以外的任何 Activity 中使用 EmojiEditText,请使用

在第一个 Activity 中安装 Emoji
EmojiManager.install(new IosEmojiProvider());

或者如果你在 FirstActivity 中使用它,那么创建一个由 Application 类扩展的新类,并将这一行放在 onCreate 方法中

EmojiManager.install(new IosEmojiProvider());

并将这一行放在清单文件中的应用程序标签中

android:name=".YourClassName"