Android显示样式

Android显示样式

 

EditText样式

 

<android.support.design.widget.TextInputLayout
android:id="@+id/til"
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="match_parent"
android:hint="提示文本">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:gravity="left"
android:textSize="12sp"
/>
</android.support.design.widget.TextInputLayout>


Button图文显示,控制图片大小
Drawable drawable1 = ContextCompat.getDrawable(getContext(),R.drawable.focus);
drawable1.setBounds(0, 0, 100, 100);//第一0是距左边距离,第二0是距上边距离,40分别是长宽
userFocus.setCompoundDrawables(null, drawable1, null, null);

完美解决EditText和ScrollView的滚动冲突


public class MainActivity extends Activity implements View.OnTouchListener {

    private EditText mEditText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mEditText = (EditText) findViewById(R.id.edit_text);
        mEditText.setOnTouchListener(this);
    }

    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        //触摸的是EditText而且当前EditText能够滚动则将事件交给EditText处理。否则将事件交由其父类处理
        if ((view.getId() == R.id.edit_text && canVerticalScroll(mEditText))) {
            view.getParent().requestDisallowInterceptTouchEvent(true);
            if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                view.getParent().requestDisallowInterceptTouchEvent(false);
            }
        }
        return false;
    }

    /**
     * EditText竖直方向能否够滚动
     * @param editText  须要推断的EditText
     * @return  true:能够滚动   false:不能够滚动
     */
    private boolean canVerticalScroll(EditText editText) {
        //滚动的距离
        int scrollY = editText.getScrollY();
        //控件内容的总高度
        int scrollRange = editText.getLayout().getHeight();
        //控件实际显示的高度
        int scrollExtent = editText.getHeight() - editText.getCompoundPaddingTop() -editText.getCompoundPaddingBottom();
        //控件内容总高度与实际显示高度的差值
        int scrollDifference = scrollRange - scrollExtent;

        if(scrollDifference == 0) {
            return false;
        }

        return (scrollY > 0) || (scrollY < scrollDifference - 1);
    }
}
 

 

posted @ 2018-01-08 17:50  small英  阅读(160)  评论(0编辑  收藏  举报