OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.widget; | 5 package org.chromium.chrome.browser.widget; |
6 | 6 |
7 import android.content.Context; | 7 import android.content.Context; |
8 import android.support.v7.widget.AppCompatEditText; | 8 import android.support.v7.widget.AppCompatEditText; |
9 import android.util.AttributeSet; | 9 import android.util.AttributeSet; |
10 import android.widget.EditText; | 10 import android.widget.EditText; |
11 | 11 |
12 /** | 12 /** |
13 * This custom {@link EditText} does not allow the user to scroll the text verti
cally. This is | 13 * This custom {@link EditText} does not allow the user to scroll the text verti
cally. This is |
14 * can be useful when the EditText is put into a layout where it is smaller than
it's normal height. | 14 * can be useful when the EditText is put into a layout where it is smaller than
it's normal height. |
15 */ | 15 */ |
16 public class VerticallyFixedEditText extends AppCompatEditText { | 16 public class VerticallyFixedEditText extends AppCompatEditText { |
17 | 17 |
18 public VerticallyFixedEditText(Context context, AttributeSet attrs) { | 18 public VerticallyFixedEditText(Context context, AttributeSet attrs) { |
19 super(context, attrs); | 19 super(context, attrs); |
20 } | 20 } |
21 | 21 |
22 private boolean mBringingPointIntoView = false; | 22 private boolean mBringingPointIntoView; |
23 | 23 |
24 @Override | 24 @Override |
25 public boolean bringPointIntoView(int offset) { | 25 public boolean bringPointIntoView(int offset) { |
26 try { | 26 try { |
27 mBringingPointIntoView = true; | 27 mBringingPointIntoView = true; |
28 return super.bringPointIntoView(offset); | 28 return super.bringPointIntoView(offset); |
29 } finally { | 29 } finally { |
30 mBringingPointIntoView = false; | 30 mBringingPointIntoView = false; |
31 } | 31 } |
32 } | 32 } |
33 | 33 |
34 @Override | 34 @Override |
35 public void scrollTo(int x, int y) { | 35 public void scrollTo(int x, int y) { |
36 // To prevent vertical scroll on touch events, only allow | 36 // To prevent vertical scroll on touch events, only allow |
37 // TextView.bringPointIntoView(...) to change the vertical scroll. | 37 // TextView.bringPointIntoView(...) to change the vertical scroll. |
38 super.scrollTo(x, mBringingPointIntoView ? y : getScrollY()); | 38 super.scrollTo(x, mBringingPointIntoView ? y : getScrollY()); |
39 } | 39 } |
40 | 40 |
41 } | 41 } |
OLD | NEW |