【问题标题】:setTextAlignment() & setGravity() is not working dynamicallysetTextAlignment() & setGravity() 不能动态工作
【发布时间】:2019-06-03 03:13:07
【问题描述】:

注意:这不是重复的问题,正在寻找建议。

我有一个 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;
}

【问题讨论】:

    标签: android android-edittext text-alignment


    【解决方案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;
    }
    

    【讨论】:

    • 那么你想设置提示的重力吗?
    • 在我的例子中: text_input.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); text_input.setGravity(Gravity.CENTER);它工作正常
    • 一切正常(即使是左右)。但是,我同时使用了 setGravity() 和 setTextAlignment()。感谢您提供实现要求的提示。
    【解决方案2】:

    你应该试试这个

    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(),但不是文本“HINT”。我的意思是,当 edittext 中的文本是更高的字符[让字符在 edittext 中大于 20] 时,重力适用于 edittext 和 edittext 中的文本
    猜你喜欢
    • 2013-01-04
    • 2014-07-19
    • 2016-08-12
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 2014-10-07
    • 2017-07-01
    • 2016-12-26
    相关资源
    最近更新 更多