• Scrollview中嵌套ListView(自定义组件解决)


    首先,ScrollView中只能放一个控件,一般都放LinearLayout,orientation属性值为vertical。在LinearLayout中放需要呈现的内容。ListView也在其中,ListView的高度设为适应自身内容(wrap_content)。

    下面直接看例子吧:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:orientation="vertical"
        tools:context="com.xxx.bokeyuan_16.MainActivity">
    
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">
    
        <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/text_num">
    
    </ListView>
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button" />
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button2" />
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button3" />
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button4" />
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button5" />
            </LinearLayout>
        </ScrollView>
    
    </LinearLayout>
    

      上面代码中的@array/text_num就是在trings中创建数据:

    <resources>
        <string-array name="text_num">
            <item>1</item>
            <item>2</item>
            <item>3</item>
            <item>4</item>
            <item>5</item>
            <item>6</item>
            <item>7</item>
            <item>8</item>
            <item>9</item>
            <item>10</item>
        </string-array>
    </resources>
    

      得到的效果如下图:可以清楚的看到ListView里面的数据仅显示了text_num中的第一个数据。

    下面通过自定义组件来解决此显示不全的问题:点击New,在其中创建一个MyListView类如下:

    完成下列创建后,再在上面的layout中将ListView改成com.xxx.scrollview.MyListView

    package com.xxx.scrollview;
    
    import android.content.Context;
    import android.util.AttributeSet;
    import android.widget.ListView;
    
    /**
     * Created by john on 2016/7/15.
     */
    class MyListView extends ListView{
    
        public MyListView(Context context) {
            super(context);
        }
    
        public MyListView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
    
        //重新测量空间(这里是高度)
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            heightMeasureSpec=MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        }
    }

    如下图,现在再来运行就搞定了。

  • 相关阅读:
    ansible的管理与剧本
    条件随机场入门(二) 条件随机场的模型表示
    条件随机场入门(一) 概率无向图模型
    隐马尔科夫模型
    高斯混合模型 GMM
    K-Means 算法
    EM 算法
    Sequential Minimal Optimization (SMO) 算法
    LinkedIn文本分析平台:主题挖掘的四大技术步骤
    SVM 核方法
  • 原文地址:https://www.cnblogs.com/renqiqiang/p/5677001.html
Copyright © 2020-2023  润新知