要实现Android中的自动滚动textView以与editText位置对齐,可以使用ScrollView和setOnFocusChangeListener来监听editText的焦点状态并自动滚动textView。
首先,在你的XML布局文件中添加ScrollView和一个垂直方向的LinearLayout,然后在LinearLayout中添加textView和editText。
接下来,在你的Java代码中,使用setOnFocusChangeListener来监听editText的焦点状态,并在焦点状态改变时自动滚动textView。
public class MainActivity extends AppCompatActivity {
private TextView textView;
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
editText = findViewById(R.id.editText);
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
// 获取textView和editText的位置信息
int[] textViewLocation = new int[2];
int[] editTextLocation = new int[2];
textView.getLocationOnScreen(textViewLocation);
editText.getLocationOnScreen(editTextLocation);
// 计算textView和editText的垂直偏移量
int verticalOffset = editTextLocation[1] - textViewLocation[1];
// 滚动textView以与editText位置对齐
textView.scrollTo(0, verticalOffset);
}
}
});
}
}
通过以上代码,当editText获得焦点时,textView将自动滚动以与editText的位置对齐。