【问题标题】:Textview design in androidandroid中的Textview设计
【发布时间】:2020-09-04 07:56:30
【问题描述】:

如何让我在 android 中的文本视图看起来像下图中的那样

【问题讨论】:

标签: android android-layout material-components-android android-textinputlayout material-components


【解决方案1】:

使用 TextInputLayout

        <com.google.android.material.textfield.TextInputLayout
            app:boxBackgroundColor="@color/white"
            app:placeholderText="Name"
            app:hintEnabled="false">

            <com.google.android.material.textfield.TextInputEditText
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>

        </com.google.android.material.textfield.TextInputLayout>

否则,您可以将 MaterialShapeDrawable 应用到您的 EditText(或 TextView)。
在你的布局中定义:

        <EditText
            android:layout_width="match_parent"
            android:layout_height="56dp"
            android:id="@+id/edittext"
            android:paddingStart="4dp"
            android:hint="Name"/>

然后:

    val radius = resources.getDimension(R.dimen.cornerSize8)

    val textView: EditText = findViewById(R.id.edittext)
    val shapeAppearanceModel = ShapeAppearanceModel()
        .toBuilder()
        .setAllCorners(CornerFamily.ROUNDED, radius)
        .build()

    val shapeDrawable = MaterialShapeDrawable(shapeAppearanceModel)
    shapeDrawable.fillColor = AppCompatResources.getColorStateList(this,R.color.white)
    ViewCompat.setBackground(textView, shapeDrawable)

【讨论】:

    【解决方案2】:

    很简单,只需要设置背景可绘制

    textview_background.xml

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
        <corners android:radius="8dp" />
        <solid android:color="@color/white" />
    </shape>
    

    文本视图:

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/textview_background"
        android:gravity="center_vertical"
        android:padding="8dp" />
    

    【讨论】:

      【解决方案3】:

      只需在您的布局中创建一个 EditText 或使用 inputtype="Whatever you want" 的 TextView

      喜欢这个

      <EditText
           android:id="@+id/plain_text_input"
           android:layout_height="wrap_content"
           android:layout_width="match_parent"
           android:inputType="text"
           android:text="First Name"
           android:background="@drawable/textbackground"
      />
      

      在drawable中创建textbackground.xml

      drawable/textbackground.xml --

      <?xml version="1.0" encoding="utf-8"?>
      <selector xmlns:android="http://schemas.android.com/apk/res/android">
          <item>
             <shape android:shape="rectangle">
                 <solid android:color="#FFFFFF"/>
                 <corners android:radius="5dp"/>
              </shape>
          </item>
      </selector>
      

      希望它有效

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-30
        相关资源
        最近更新 更多