Android setTextAlignment()&;setGravity()未动态工作

Android setTextAlignment()&;setGravity()未动态工作,android,android-edittext,text-alignment,Android,Android Edittext,Text Alignment,注意:这不是一个重复的问题,寻找建议 我有一个EditText,其中EditText必须根据用户请求单击右对齐按钮、居中对齐按钮和左对齐按钮来对齐其文本 当我点击对齐按钮时,编辑文本不会生效 我使用了setxtalignment()和setGravity()。在我的场景中,两者都不起作用 XML 试试这个 switch(v.getId){ case R.id.text_align_left_ID : text_input.setGravity(Gravity.LEF

注意:这不是一个重复的问题,寻找建议

我有一个EditText,其中EditText必须根据用户请求单击右对齐按钮、居中对齐按钮和左对齐按钮来对齐其文本

当我点击对齐按钮时,编辑文本不会生效

我使用了setxtalignment()和setGravity()。在我的场景中,两者都不起作用

XML

试试这个

switch(v.getId){
    case R.id.text_align_left_ID :
          text_input.setGravity(Gravity.LEFT);
          break;
    case R.id.text_align_center_ID :
          text_input.setGravity(Gravity.CENTER);
          break;
    case R.id.text_align_right_ID :
          text_input.setGravity(Gravity.RIGHT);
          break;
}
你应该试试这个

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
params.gravity = Gravity.CENTER_VERTICAL | Gravity.START;
text_input.setLayoutParams(params);

谢谢你的回复。此解决方案将Edittext设置为setGravity(),而不是文本“提示”。我的意思是,当edittext中的文本是更高的字符[让edittext中的字符大于20]时,重力适用于edittext和edittext中的文本,那么您想设置提示的重力吗?在我的例子中:text\u input.setTextAlignment(View.text\u ALIGNMENT\u CENTER);文本输入设置重力(重心);一切都很好(即使是左派和右派)。但是,我同时使用了setGravity()和setxtAlignment()。感谢您的提示以达到要求。
switch(v.getId){

    case R.id.text_align_left_ID :
          text_input.setTextAlignment(View.TEXT_ALIGNMENT_TEXT_START);
          break;
    case R.id.text_align_center_ID :
          text_input.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
          break;
    case R.id.text_align_right_ID :
          text_input.setTextAlignment(View.TEXT_ALIGNMENT_TEXT_END);
          break;
}
switch(v.getId){
    case R.id.text_align_left_ID :
          text_input.setGravity(Gravity.LEFT);
          break;
    case R.id.text_align_center_ID :
          text_input.setGravity(Gravity.CENTER);
          break;
    case R.id.text_align_right_ID :
          text_input.setGravity(Gravity.RIGHT);
          break;
}
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
params.gravity = Gravity.CENTER_VERTICAL | Gravity.START;
text_input.setLayoutParams(params);