clcurie_11 2013-09-25 07:29 采纳率: 6.7%
浏览 1371

在一个Scroll View中设置Linear Layout的选项

我在 linear Layout中的scroll view中多次扩大一个行,我想改变用户选中的行的背景颜色。
但是现在只在一些区域内选中行,能改变行的背景颜色。
ScrollView XML

<ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/mainScroll"
        android:layout_marginTop="5dp" >

        <LinearLayout
            android:id="@+id/mainData"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="8dp"
            android:orientation="vertical" >
        </LinearLayout>
    </ScrollView>

InnerLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/resultLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:baselineAligned="false"
    android:background="@drawable/backgroundcolor"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/id1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:singleLine="true"
            android:text="25 Sep 2013" />

        <TextView
            android:id="@+id/id2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:singleLine="true"
            android:text="" />

        <TextView
            android:id="@+id/id3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:singleLine="true"
            android:text="" />

        <ImageView
            android:id="@+id/id4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="5dp"
            android:src="@drawable/ic"/>
    </LinearLayout>

</LinearLayout>

BackgroundColor.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item
 android:state_selected="false"
    android:state_pressed="false"
    android:drawable="@color/grey" />
<item android:state_pressed="true"
    android:drawable="@color/itemselected" />
<item android:state_selected="true"
 android:state_pressed="false"
    android:drawable="@color/itemselected" />
</selector>  

Color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="grey">#ffffff</color>
    <color name="itemselected">#EDEDED</color>
</resources>

如图:
CSDN移动问答

选择的功能能正常运行,但是不能完全填充布局的高度。问题在哪里?

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-20 10:32
    关注

    该回答引用ChatGPT

    根据您提供的代码,您可能需要在InnerLayout的根布局中添加android:clickable="true"和android:focusable="true"属性,以确保该布局可以获取焦点并接收点击事件。同时,您还需要在代码中为每个要更改背景颜色的LinearLayout设置android:clickable="true"属性,并且在您的代码中添加相应的点击事件处理逻辑。


    此外,您的ScrollView中的LinearLayout的高度设置为wrap_content,这意味着它的高度将根据其子项的大小动态调整。如果您希望LinearLayout占用整个ScrollView的高度,则可以将其高度设置为match_parent。


    最后,您还可以尝试使用RecyclerView代替ScrollView和LinearLayout来管理列表项,这是更灵活和高效的解决方案。

    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗