TextInputLayout :How to give padding or margin to hint?

后端 未结 15 1895
离开以前
离开以前 2020-11-28 06:42

I have to use TextInputLayout of design support library in my project. I want to give space between hint and EditText in TextInp

15条回答
  •  醉酒成梦
    2020-11-28 07:28

    I made a special class for the purpose of adding empty view above EditText, thus add padding to hint. You can use it as simple TextInputLayout.

    public class PaddingTextInputLayout extends TextInputLayout {
    
    public View paddingView;
    
    public PaddingTextInputLayout(Context context) {
        super(context);
    }
    
    public PaddingTextInputLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    
    public PaddingTextInputLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    
    @Override
    public void addView(View child, int index, ViewGroup.LayoutParams params) {
        super.addView(child, index, params);
        refreshPaddingView();
    }
    
    public void addPaddingView(){
        paddingView = new View(getContext());
        int height = (int) getContext().getResources()
                .getDimension(R.dimen.edittext_text_input_layout_padding);
        ViewGroup.LayoutParams paddingParams = new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                height);
        super.addView(paddingView, 0, paddingParams);
    }
    
    public void refreshPaddingView(){
        if (paddingView != null) {
            removeView(paddingView);
            paddingView = null;
        }
        addPaddingView();
    }
    }
    

    This implementation is very simple and stupid, you can improve it a lot.

提交回复
热议问题