繁体   English   中英

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

[英]Emoji setup in my project

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

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

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

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

无法解析rootView

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

非常感谢提前

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

这将是您通过膨胀 xml 布局实例化的 View 子类。

他在示例中使用的布局是这种膨胀如下:

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

摘自他自己的代码示例 这将是上面示例中的 rootView。

我有同样的问题...

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

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

您还需要一个 rootview,如上面 jugutier 所述。
在您的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);

        }

    }
});

如果您在 FirstActivity 以外的任何 Activity 中使用 EmojiEditText,则在第一个 Activity 中使用安装 Emoji

EmojiManager.install(new IosEmojiProvider());

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

EmojiManager.install(new IosEmojiProvider());

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

android:name=".YourClassName"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM