Add scrollView and highlight on a Linear Layout in Android

↘锁芯ラ 提交于 2019-12-24 02:56:19

问题


I have Linearlayout that have have multiple linear layouts in which one of the main layout have a LinearLayout and Listview. LinearLayout contains multiple ImageView and TextView now I want to add ScrollView on this LinearLayout. But if I am adding the ScrollView my ListView got hidden and onClick of the ImageView I want to highlight that LinearLayout.

My XML is :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id ="@+id/mainFilterLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <ImageView
                android:id="@+id/companyLogo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight=".1"
                android:layout_gravity="left"
                android:adjustViewBounds="true"
                android:background="@mipmap/ic_launcher" />
            <View
                android:clickable="true"
                android:layout_gravity="center"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1" />
            <Button
                android:id="@+id/btnClear"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right|center"
                android:gravity="right|center"
                android:text="Clear" />

            <Button
                android:id="@+id/btnApply"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right|center"
                android:gravity="right|center"
                android:text="Apply" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">
//**I want to add scroll view on this linear layout**
            <LinearLayout
                android:id="@+id/categoryLayout"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="2"
                android:orientation="vertical">

                <LinearLayout
                    android:id="@+id/brandLayout"
                    android:layout_width="match_parent"
                    android:layout_height="70dp"
                    android:orientation="vertical">
//**Here on click of imageviwew i want set as selected for this linear layout**
                    <ImageView
                        android:id="@+id/mobbrand"
                        android:layout_width="90dp"
                        android:layout_height="50dp"
                        android:background="@mipmap/ic_launcher"
                        android:layout_gravity="center" />

                    <TextView
                        android:id="@+id/txtBrand"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:text="Brand" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/colorLayout"
                    android:layout_width="match_parent"
                    android:layout_height="70dp"
                    android:orientation="vertical">

                    <ImageView
                        android:id="@+id/mobColor"
                        android:layout_width="90dp"
                        android:layout_height="50dp"
                        android:background="@mipmap/ic_launcher"
                        android:layout_gravity="center" />

                    <TextView
                        android:id="@+id/txtColor"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:text="COLOUR" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/sizeLayout"
                    android:layout_width="match_parent"
                    android:layout_height="70dp"
                    android:orientation="vertical">

                    <ImageView
                        android:id="@+id/mobSize"
                        android:layout_width="90dp"
                        android:layout_height="50dp"
                        android:background="@mipmap/ic_launcher"
                        android:layout_gravity="center" />

                    <TextView
                        android:id="@+id/txtSize"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:text="Size" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/offerLayout"
                    android:layout_width="match_parent"
                    android:layout_height="70dp"
                    android:orientation="vertical">

                    <ImageView
                        android:id="@+id/mobOffers"
                        android:layout_width="90dp"
                        android:layout_height="50dp"
                        android:layout_gravity="center"
                        android:background="@mipmap/ic_launcher" />

                    <TextView
                        android:id="@+id/txtPrice"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:text="Price" />
                </LinearLayout>


                <LinearLayout
                    android:id="@+id/othersLayout"
                    android:layout_width="match_parent"
                    android:layout_height="70dp"
                    android:orientation="vertical">

                    <ImageView
                        android:id="@+id/mobother"
                        android:layout_width="90dp"
                        android:layout_height="50dp"
                        android:layout_gravity="center"
                        android:background="@mipmap/ic_launcher" />

                    <TextView
                        android:id="@+id/txtOther"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:text="OTHER" />
                </LinearLayout>
            </LinearLayout>

            <ListView
                android:id="@+id/subCategory"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="5"
                android:cacheColorHint="@android:color/transparent"
                android:divider="#fff"
                android:dividerHeight="1dp"
                android:fadingEdge="none">
            </ListView>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

回答1:


I hope this will work for u :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id ="@+id/mainFilterLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <ImageView
                android:id="@+id/companyLogo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight=".1"
                android:layout_gravity="left"
                android:adjustViewBounds="true"
                android:background="@mipmap/ic_launcher" />
            <View
                android:clickable="true"
                android:layout_gravity="center"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1" />
            <Button
                android:id="@+id/btnClear"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right|center"
                android:gravity="right|center"
                android:text="Clear" />

            <Button
                android:id="@+id/btnApply"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right|center"
                android:gravity="right|center"
                android:text="Apply" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">
            <ScrollView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:orientation="vertical">

                    <LinearLayout
                        android:id="@+id/brandLayout"
                        android:layout_width="match_parent"
                        android:layout_height="70dp"
                        android:orientation="vertical">

                        <ImageView
                            android:id="@+id/mobbrand"
                            android:layout_width="90dp"
                            android:layout_height="50dp"
                            android:background="@mipmap/ic_launcher"
                            android:layout_gravity="center" />

                        <TextView
                            android:id="@+id/txtBrand"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:gravity="center"
                            android:text="Brand" />
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/colorLayout"
                        android:layout_width="match_parent"
                        android:layout_height="70dp"
                        android:orientation="vertical">

                        <ImageView
                            android:id="@+id/mobColor"
                            android:layout_width="90dp"
                            android:layout_height="50dp"
                            android:background="@mipmap/ic_launcher"
                            android:layout_gravity="center" />

                        <TextView
                            android:id="@+id/txtColor"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:gravity="center"
                            android:text="COLOUR" />
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/sizeLayout"
                        android:layout_width="match_parent"
                        android:layout_height="70dp"
                        android:orientation="vertical">

                        <ImageView
                            android:id="@+id/mobSize"
                            android:layout_width="90dp"
                            android:layout_height="50dp"
                            android:background="@mipmap/ic_launcher"
                            android:layout_gravity="center" />

                        <TextView
                            android:id="@+id/txtSize"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:gravity="center"
                            android:text="Size" />
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/offerLayout"
                        android:layout_width="match_parent"
                        android:layout_height="70dp"
                        android:orientation="vertical">

                        <ImageView
                            android:id="@+id/mobOffers"
                            android:layout_width="90dp"
                            android:layout_height="50dp"
                            android:layout_gravity="center"
                            android:background="@mipmap/ic_launcher" />

                        <TextView
                            android:id="@+id/txtPrice"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:gravity="center"
                            android:text="Price" />
                    </LinearLayout>


                    <LinearLayout
                        android:id="@+id/othersLayout"
                        android:layout_width="match_parent"
                        android:layout_height="70dp"
                        android:orientation="vertical">

                        <ImageView
                            android:id="@+id/mobother"
                            android:layout_width="90dp"
                            android:layout_height="50dp"
                            android:layout_gravity="center"
                            android:background="@mipmap/ic_launcher" />

                        <TextView
                            android:id="@+id/txtOther"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:gravity="center"
                            android:text="OTHER" />
                    </LinearLayout>
                </LinearLayout>
            </ScrollView>
            <ListView
                android:id="@+id/subCategory"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="5"
                android:cacheColorHint="@android:color/transparent"
                android:divider="#fff"
                android:dividerHeight="1dp"
                android:fadingEdge="none">
            </ListView>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>



回答2:


Simply do one thing cut the amount of code that you want in scrollview.... Now add scrollview in place of the code that u just "cut" ... now scrollview also have a child layout as linear layout.... in that linear layout make height to be wrap_content..... next place your code inside that linear layout... ListView outside the scrollayout...

[code]--------- Ctrl+X
replace with
<ScrollView>
   <LinearLayout>
    [code]-------- Ctrl+V
    enter code here
   </LinearLayout>
</ScrollView>
<ListView> -------- here add listview


来源:https://stackoverflow.com/questions/30679726/add-scrollview-and-highlight-on-a-linear-layout-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!