【问题标题】:HorizontalScrollView scrolls verticallyHorizo​​ntalScrollView 垂直滚动
【发布时间】:2017-12-10 22:53:20
【问题描述】:

我在水平的LinearLayout 中有一个HorizontalscrollView,由于某种原因,我只能垂直滚动。在某处我读到它需要在水平LinearLayout 内,但它仍然没有解决问题。帮助感激不尽。谢谢..

代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#deefed"
    android:orientation="vertical"
    android:padding="16dp">

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Textview"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textStyle="bold" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:digits="0123456789."
            android:ems="10"
            android:hint="edittext"
            android:inputType="number|numberDecimal"
            android:maxLines="1" />
    </HorizontalScrollView>

    <Spinner
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </Spinner>

</LinearLayout>

【问题讨论】:

    标签: android android-linearlayout horizontalscrollview


    【解决方案1】:

    垂直滚动的是您的EditText,而不是HorizontalScrollView

    如果您希望文本仅水平显示,请以这种方式更改:

    <EditText
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:digits="0123456789."
         android:ems="10"
         android:hint="edittext"
         android:inputType="number|numberDecimal"
         android:scrollHorizontally="true"
         android:singleLine="true"
         android:maxLines="1" />
    

    通过添加

    android:scrollHorizontally="true"
    android:singleLine="true"
    

    它将保持在单行中并水平滚动。

    【讨论】:

      【解决方案2】:

      如果我没看错,你想水平滚动 EditText 中的文本。我认为您不需要水平滚动视图,只需在 EditText 中使用 android:singleLine="true" 即可解决问题。

      android:maxLines 非常令人困惑,因为它做了一些非常不同的事情。它仅将 EditText 的垂直视图边界设置为一次显示与其值一样多的行,例如 android:maxLines = "5" 将在 EditText 视图中一次显示 5 行。

      <?xml version="1.0" encoding="utf-8"?>
      
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/activity_main"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="#deefed"
          android:orientation="vertical"
          android:padding="16dp">
      
          <TextView
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="Textview"
              android:textAppearance="?android:attr/textAppearanceLarge"
              android:textStyle="bold" />
      
          <LinearLayout
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="horizontal"
              >
      
              <EditText
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:digits="0123456789."
                  android:ems="10"
                  android:hint="edittext"
                  android:inputType="number|numberDecimal"
                  android:singleLine="true" />
      
              <Spinner
                  android:layout_width="match_parent"
                  android:layout_height="match_parent">
              </Spinner>
      
          </LinearLayout>
      </LinearLayout>
      

      【讨论】:

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