注意:这不是重复的问题,正在寻找建议。
我有一个 EditText ,其中 EditText 必须根据用户请求单击(居中)“右对齐”按钮来对齐其文本对齐按钮和左对齐按钮。
当我单击“分配”按钮时,它对 EditText 无效。
我使用了setTextAlignment()和setGravity()。两者都不适合我的情况。
XML
<LinearLayout
android:gravity="center"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/spacing_container"
android:layout_below="@id/cont"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:background="@drawable/rectangle"
android:padding="10dp">
<EditText
android:text="HINT"
android:id="@+id/text_input_ID"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_green_light"
android:textAlignment="center"
android:textSize="30sp" />
</LinearLayout>
对齐容器XML
<LinearLayout
android:id="@+id/text_alignment_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:baselineAligned="false"
android:gravity="center"
orientation="horizontal"
android:visibility="gone">
<ImageView
android:id="@+id/text_align_left_ID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/align_left"
android:src="@drawable/align_left" />
<ImageView
android:id="@+id/text_align_center_ID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/align_center"
android:src="@drawable/align_center" />
<ImageView
android:id="@+id/text_align_right_ID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/align_right"
android:src="@drawable/align_right" />
</LinearLayout>
onClickListerner
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;
}
答案 0 :(得分:1)
尝试
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;
}
答案 1 :(得分:0)
您应该尝试
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
params.gravity = Gravity.CENTER_VERTICAL | Gravity.START;
text_input.setLayoutParams(params);