添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

textView.setText("哈哈");
textView.setHint("哈哈哈哈哈哈");

hint属性对TextView(或者EditText)的影响,直接看下图

使用上下两个TextView控件进行对比,

第一行的“哈哈哈哈哈哈哈”是作为对比的TextView, 第二行的“哈哈”是上面代码操作的 TextView

找到TextView的onMeasure方法

    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
	..........省略...............
            if (mHint != null) {
                int hintDes = -1;
                int hintWidth;
                if (mHintLayout != null && mEllipsize == null) {
                    hintDes = desired(mHintLayout);
                if (hintDes < 0) {
                    hintBoring = BoringLayout.isBoring(mHint, mTextPaint, mTextDir, mHintBoring);
                    if (hintBoring != null) {
                        mHintBoring = hintBoring;
                if (hintBoring == null || hintBoring == UNKNOWN_BORING) {
                    if (hintDes < 0) {
                        hintDes = (int) Math.ceil(Layout.getDesiredWidth(mHint, mTextPaint));
                    hintWidth = hintDes;
                } else {
                    hintWidth = hintBoring.width;
                if (hintWidth > width) {
                    width = hintWidth;

if (mHint != null){

if (hintWidth > width) {
             width = hintWidth;
        }

所以 如果设置了hint属性, 在onMeasure测量TextView宽高时候,一定会把hint计算进去,当实际text字符比hint字符少,就会出现如文章开始处的效果。

解决方案用text模拟hint

textView.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                System.out.println("onTextChanged--"+s);
                if (TextUtils.isEmpty(s)){
                    textView.setText("模拟hint文字");
                    //这里设置为hint字体,一定要在setsetText("模拟hint文字") 之后
                    //因为setText("模拟hint文字")的时候,还会调用onTextChanged
                    //这是个小瑕疵
                    textView.setTextColor(Color.BLUE);
                }else {
                    textView.setTextColor(Color.RED);
            @Override
            public void afterTextChanged(Editable s) {
                //在这里也能实现
                    textView.setText("哈哈");textView.setHint("哈哈哈哈哈哈");hint属性对TextView(或者EditText)的影响,直接看下图:使用上下两个TextView控件进行对比,第一行的“哈哈哈哈哈哈哈”是作为对比的TextView,第二行的“哈哈”是上面代码操作的TextView找到TextView.setHint(CharS
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:orientation
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ls1792304830/article/details/52738422
(1),...
				
在开发中 碰到这样一个问题:设置了hint属性后,相应的TextView的最小宽度也会跟你设置的文字长度有关,这就是这个问题的最终原因;     百度了许多,没有找到 解决的办法,于是就 尝试 自己解决:思路有三种      1.手动添加hint ,监控textView 是否为空;这个比较麻烦      2.修改EditText属性,editadle 设为false ;
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="30dp" android:orientation="horizontal"> <TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="时间:" android:textSize="20dp"/> <EditText android:id="@+id/ed_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入预约时间" android:textSize="20dp" /> </LinearLayout> 布局超过app的界面 如何调整实现下滑能看到超过的内容
android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="30dp" android:orientation="horizontal"> <TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="时间:" android:textSize="20dp"/> <EditText android:id="@+id/ed_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入预约时间" android:textSize="20dp" </LinearLayout> </ScrollView> 这样就可以通过滑动来查看超出屏幕的部分。
Glide导致的RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap 我爱人工智能: 学习佳作,顺手点赞与关住,期待大佬回访! LinkedHashMap源码解析(基于JDK1.8) Cdf(人名): 真不错,期待大佬回访! Glide导致的RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap 彼 方: 今天点赞次数用完了,收藏支持一下,大佬有兴趣也可以看下我的博客,说不定也会有所有收获哦~ Glide导致的RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap 大家一起学编程(python): LinkedHashMap源码解析(基于JDK1.8) 彼 方: 今天点赞次数用完了,收藏支持一下,学习的道路上一起进步,也期待你的关注与支持! Glide导致的RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap LinkedHashMap源码解析(基于JDK1.8) Android Binder机制情景源码分析之Binder回调注册和反注册