栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android聊天界面昵称的显示和进行对话中“输入中”状态的显示

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android聊天界面昵称的显示和进行对话中“输入中”状态的显示

问题描述:

需求:聊天界面当中,输入框内容为空时,显示昵称 ; 输入框不为空时,显示昵称+…+"输入中…"或者显示昵称+“输入中…”;
(这里要考虑昵称很短的情况下,昵称后是不会出现“…”;)

分析:
  1. 昵称的长度分为两种。昵称很长;昵称很短;
  2. 输入中的状态分为两种。显示;不显示;
    关于一个布局思考:(主要是自己对不熟悉的布局所导致的)
    (在写的过程中,有些复杂的逻辑我自己也说不清楚,写的时候就能知道了。比如:我考虑过输入中这几个字无论昵称长短都要跟其后,所以开始是写了一个Textview,显示昵称+“输入中…”,后来因为昵称太长的时候把“输入中…”挤进了省略号里边,而分成两个textviw。比如:我用maxEms限制了昵称最大显示的字数,但是就没办法实现昵称在输入框内容为空时为一个完整的状态。比如:对titlename的layout_width进行宽度限制,也同样没办法实现昵称在输入框内容为空时为一个完整的状态。比如:如果不限制titlename的宽或者字数,便显示了全部完整的titlename,就又回到了没有输入中的状态。)
    当然输入中的隐藏状态还是很好设置成的。
解决方案:

类似这样的效果:

布局文件xml:(完整)





    














    

    


ChatActivity.java

public void setTitleSessionStatus(SessionStatusType statusType) {
    switch (statusType) {
        case SESSION_NONE:
            mTitleBar.setTitle(titleName);
            mTitleBar.setState("",false);
            break;
        case SESSION_TYPING:
            mTitleBar.setTitle(titleName);
            mTitleBar.setState(getString(R.string.chat_session_typing),true);
            break;
        case SESSION_SPEAKING:
            mTitleBar.setTitle(titleName);
            mTitleBar.setState(getString(R.string.chat_session_speaking),true);
            break;
    }
}

TitleBar.java (部分)

public void setTitle(String mTitle) {
    this.mTitle = mTitle;
    mTvTitle.setText(mTitle);
}
public void setState(String state, boolean Visibility){
    mTvState.setText(state);
    mTvState.setVisibility(Visibility ? View.VISIBLE :View.GONE);
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/685865.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号