簡體   English   中英

使用嵌套的TextView限制Android水平ScrollView的寬度

[英]Restrict the Width of an Android Horizontal ScrollView with nested TextView

我已經為列表視圖的自定義適配器編寫了以下代碼。 這是我的row_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">


<HorizontalScrollView
    android:layout_width="300dp"
    android:layout_height="24dp"
    android:id="@+id/horizontalScrollView">

    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="111111111111111111111111111111111111111111111111111111"
        android:textAppearance="@style/TextAppearance.AppCompat.Headline"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:scrollHorizontally="true"
        android:maxLines = "1"
        android:textSize="18sp" />

</HorizontalScrollView>



<TextView
    android:id="@+id/price"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/horizontalScrollView"
    android:layout_marginTop="5dp"
    android:text="$39.99"
    android:textColor="@android:color/black" />



<ImageView
    android:id="@+id/store"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_favorite_border_black_24dp"
    android:layout_centerVertical="true"
    android:layout_alignParentEnd="true"
    android:layout_marginEnd="16dp" />

</RelativeLayout>

我將文本視圖置於水平滾動視圖中,因為許多文本項都非常長。 上面的代碼確實使它從左向右滾動並將其限制為一行,但是我希望scrollView在imageView之前結束。 下面是所需功能的圖片:

視覺輔助

但是,當我運行該應用程序時,文本直接在imageView上方流血。

關於如何糾正這一點的任何想法?

更新1:這是我現在得到的:

視覺輔助

這是因為RelativeLayout將視圖放在另一個視圖的頂部,當您滾動Horizo​​ntalScrollView時,實際上是在重繪它,並且將其繪制在ImageView的頂部。

嘗試用LinearLayout替換RelativeLayout,看看它是否固定。

編輯:我沒有看到下面的圖像。 嗯,這是因為您使用的是相對布局,而Horizo​​ntalScrollView的寬度是match_parent,並且視圖彼此頂部相互重疊。 嘗試將LinearLayout與width = 0px和weight = 1一起使用

編輯2:好的,所以您想要價格-Horizo​​ntalScreenView-ImageView? 這是整個代碼,只需復制並粘貼即可。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dp">

<TextView
    android:id="@+id/price"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/horizontalScrollView"
    android:layout_marginTop="5dp"
    android:text="$39.99"
    android:textColor="@android:color/black" />

<HorizontalScrollView
    android:id="@+id/horizontalScrollView"
    android:layout_width="0px"
    android:layout_height="24dp"
    android:layout_weight="1">

    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:maxLines="1"
        android:scrollHorizontally="true"

        android:text="111111111111111111111111111111111111111111111111111111"
        android:textAppearance="@style/TextAppearance.AppCompat.Headline"
        android:textSize="18sp" />

</HorizontalScrollView>


<ImageView
    android:id="@+id/store"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:src="@drawable/ic_favorite_border_black_24dp" />

</LinearLayout>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM