这是EditText的xml:
<androID.support.design.Widget.TextinputLayout androID:ID="@+ID/completion_date_layout2" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_marginleft="5dp" androID:layout_marginRight="5dp" androID:layout_weight="1" androID:orIEntation="horizontal"> <EditText androID:ID="@+ID/etTaskDate" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:hint="@string/Title_completion_date" androID:inputType="text" androID:drawableleft="@drawable/ic_date" androID:paddingBottom="15dp" androID:drawablepadding="5dp" androID:textSize="@dimen/fIElds_text_size"/> </androID.support.design.Widget.TextinputLayout>
这是所需的输出:
@L_502_0@
这是我得到的输出:
解决方法 感谢Java的成员访问模型和谷歌的开发人员留下了一个小漏洞,可以通过一个简单的子类来实现,它重复了最少的原始代码:package androID.support.design.Widget;import androID.content.Context;import androID.graphics.Rect;import androID.util.AttributeSet;public final class TextinputLayoutEx extends TextinputLayout { private final int mDefaultpadding = __4DP__; private final Rect mTmpRect = new Rect(); public TextinputLayoutEx(Context context,AttributeSet attrs) { super(context,attrs); } @OverrIDe protected voID onLayout(boolean changed,int left,int top,int right,int bottom) { super.onLayout(changed,left,top,right,bottom); if (isHintEnabled() && mEditText != null) { final Rect rect = mTmpRect; VIEwGroupUtils.getDescendantRect(this,mEditText,rect); mCollapsingTextHelper.setCollapsedBounds( rect.left + mDefaultpadding,getpaddingtop(),rect.right - mDefaultpadding,bottom - top - getpaddingBottom()); mCollapsingTextHelper.recalculate(); } }}
在这里,我们将一个新类放到同一个包中,该类打开对包含级别可见性的mCollapsingTextHelper的访问,然后从管理字段名称定位的原始onLayout方法重复部分代码. __4DP__值是4dp值转换为像素,我很确定每个人都有一个实用方法.
在你的xml布局中,只需从androID.support.design.Widget.TextinputLayout切换到androID.support.design.Widget.TextinputLayoutEx,这样你的布局如下所示:
<androID.support.design.Widget.TextinputLayoutEx androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:hint="Mobile"> <androID.support.design.Widget.TextinputEditText androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:drawableleft="@drawable/ic_phone_black_24dp" androID:drawablepadding="4dp"/></androID.support.design.Widget.TextinputLayoutEx>
结果是
目前它适用于com.androID.support:design:25.3.1
总结以上是内存溢出为你收集整理的android – TextInputLayout标签,位于EditText的左侧drawable之上全部内容,希望文章能够帮你解决android – TextInputLayout标签,位于EditText的左侧drawable之上所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)