1.UI方面
1.软件盘覆盖聊天记录:
<LinearLayout
android:id="@+id/input_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<ScrollView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fillViewport="true">
<EditText
android:id="@+id/chat_edit_msg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Input Your Message"
android:maxLines="5"
android:minLines="1"
android:padding="5dp"
android:textSize="20sp" />
</ScrollView>
<Button
android:id="@+id/chat_send_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:padding="10dp"
android:text="send"
android:textSize="20sp" />
</LinearLayout>
实现底部控件随着软键盘的弹出而上移
将EditText放在ScrollView中,设置 android:fillViewport="true"属性,ScrollView只将EditView嵌套在其中即可,不可将其他组件放进来;不可随意在清单文件中给该activity设置软键盘属性。
android:fillViewport="true" 这个属性允许ScrollView中的组件去充满它
若弹出的软键盘遮挡了部分上移的view,可以在清单文件中给activity设置属性android:windowSoftInputMode="adjustResize"一些不必要的属性不要随意添加,以免影响实现功能效果。
三种方法:
方法一:在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
方法二:在项目的AndroidManifest.xml文件中界面对应的<activity>里加入android:windowSoftInputMode="stateVisible|adjustResize",这样会让屏幕整体上移。
如果加上的是android:windowSoftInputMode="adjustPan"这样键盘就会覆盖屏幕。
方法三:把顶级的layout替换成ScrollView,或者说在顶级的Layout上面再加一层ScrollView的封装。这样就会把软键盘和输入框一起滚动了,软键盘会一直处于底部。但是我在AndroidManifest.xml对应的activity中设置
android:windowSoftInputMode="stateunspeciedadjustPan"
这样就可以了
2.Listview 始终显示到最后
<ListView
android:id="@+id/chat_listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/input_view"
android:cacheColorHint="@color/transparent"
android:divider="@null"
android:listSelector="@color/transparent"
android:scrollbars="none"
android:transcriptMode="alwaysScroll" />
Listview始终显示到最后面的两种方式
android:transcriptMode="alwaysScroll" //xml中设置
listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); //Java代码设置
MyAdapter adapter = new MyAdapter(this,messages); //自定义的数据适配器
listView.setAdapter(adapter); //将适配器绑定到列表中
listView.setSelection(adapter.getCount()); //设置当前被选中的item,该item为最后一个
3.listview 不显示滚动条
android:scrollbars="none"
4.listview 不显示分割线
android:divider="@null"
5.livstview Item在点击的时候,背景色不变,显示为透明色
android:cacheColorHint="@color/transparent"
android:listSelector="@color/transparent"
6.TextView设置行间距
textView有一个属性android:textScaleX是调节字间距的,它的值是一个float型。查看源代码,默认textView 此属性是使用的是:
android.internal.R.styleable.TextView_textScaleX
setTextScaleX(a.getFloat(attr, 1.0f));
行间距:
//android:lineSpacingExtra //设置行间距,如”3dp”
//android:lineSpacingMultiplier //设置行间距的倍数
android:lineSpacingExtra="3dp"
android:lineSpacingMultiplier="1.5"
<TextView
android:id="@+id/chat_receive_text"
style="@style/chat_item_text"
android:layout_alignTop="@+id/chat_receive_head"
android:layout_marginRight="20dp"
android:layout_toRightOf="@+id/chat_receive_head"
android:background="@drawable/bg_chatting_item_left"
android:paddingLeft="15dp"
android:paddingRight="10dp"/>
<style name="chat_item_text">
<item name="android:textSize">16sp</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:minHeight">40dp</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingBottom">5dp</item>
<item name="android:lineSpacingExtra">3dp</item>
<item name="android:gravity">center_vertical|left</item>
</style>
2.API
1.字符串截取
字符串截取三个方法String str = "s\\ziyuan";
String newStr = str.substring(str.indexOf("\\"),str.length());
String str1 = "100.562";
String result = str.substring(0, str.indexOf("."));
网友评论