EditText
来源:互联网 发布:巨人网络2018校招面试 编辑:程序博客网 时间:2024/06/01 08:40
Android 如何让EditText不自动获取焦点
在项目中,一进入一个页面, EditText默认就会自动获取焦点。
那么如何取消这个默认行为呢?
在网上找了好久,有点 监听软键盘事件,有点 调用 clearFouse()方法,但是测试了都没有! xml中也找不到相应的属性可以关闭这个默认行
解决之道:在EditText的父级控件中找一个,设置成
android:focusable="true" android:focusableInTouchMode="true"这样,就把EditText默认的行为截断了!
Andr设置控件的透明度
android:alpha="0.5"
EditText searchView = (EditText) findViewById(R.id.search_text);searchView.setOnFocusChangeListener(new android.view.View.OnFocusChangeListener() {@Overridepublic void onFocusChange(View v, boolean hasFocus) {if (hasFocus) {// 此处为得到焦点时的处理内容} else {// 此处为失去焦点时的处理内容}}});
设置EditText自动获取焦点并弹出输入法
// 获取编辑框焦点editText.setFocusable(true);//打开软键盘InputMethodManager imm = (InputMethodManager)MainActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);//关闭软键盘imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
Android系统中TextView默认行间距比较窄,不美观。
我们可以设置每行的行间距,可以通过属性android:lineSpacingExtra或android:lineSpacingMultiplier来做。
在你要设置的TextView中加入如下代码:
1、android:lineSpacingExtra
设置行间距,如”8dp”。
2、android:lineSpacingMultiplier
设置行间距的倍数,如”1.5″。
通过获取控件上面的数字,进行拨打电话
phone_text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_DIAL); Uri data = Uri.parse("tel:" + phone_text.getText()); intent.setData(data); startActivity(intent); } });
实现textview最后一行只显示一半的效果 不知道大家有没有接到过这种需求,textview要求最大3行,并且最后一行只显示一半,以省略号结尾
一开始觉得很蛋疼,一直没有好的思路,后来想到一种方案,就是用textview的paint可以计算出整个String的需要的宽度stringWidth,并且能计算出textview tvWidth的宽度
就可以推导出一个公式
line = stringWidth / tvWidth
这个line就是textview需要的行数
如果行数超过我们预期的行数,我们可以对String取子串
public static String getSubString(TextView tv, String content, int maxLine){ float width = tv.getPaint().measureText(content); //这里只是为了方便,用屏幕宽度代替了textview控件宽度,如果需要精准控制,可以换成控件宽度 float tvWidth = activity.getWindowManager().getDefaultDisplay().getWidth(); if(width / tvWidth > (maxLine + 0.5)){ return content.substring(0,(int)(content.length()/(width/tvWidth)/(maxLine + 0.5))) + "..."; } return content;}
- 1
如果你想要显示2.5行 就可以传入maxLine=2
如果想显示2.3行,就把方法里的0.5改成0.3
要控制EditText单行显示需要同时设置
android:singleLine="true"
和android:maxLines="1";
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- 矩形的圆角弧度 --> <corners android:radius="8dp" /> <!-- 矩形的填充色 --> <solid android:color="@color/black" /> <!--<stroke--> <!--android:width="0.5dp"--> <!--android:color="#4eb621" />-->
</shape>
阅读全文
0 0
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- EditText
- edittext
- 研发团队管理心得
- PHP开发小技巧①④—PHP判断时间在某一时间段内
- Android Studio解决没有HttpClint及相关类的方法
- 表达式求值
- 中科爱讯WiFi探针模块TZ-1002产品简介
- EditText
- Findbugs错误总结
- linux安装hadoop配置Yarn
- Jemalloc malloc的分配过程,以redis的第一次内存分配malloc(1)展开
- 堆栈的简单实现之二:进制转换方面的简单应用(C语言实现)
- c++ XXXXXX discards qualifiers [-fpermissive] 错误原因
- 悼念512汶川大地震遇难同胞——选拔志愿者 HDU 博弈
- Android USB Camera
- XStream 序列化与反序列化