自定义可以设置最大高度的ListView

原文地址:http://blog.csdn.net/x1051340616/article/details/53036910

public class MaxListView extends ListView {
    /**
     * listview高度
     */
    private int listViewHeight;

    public int getListViewHeight() {
        return listViewHeight;
    }

    public void setListViewHeight(int listViewHeight) {
        this.listViewHeight = listViewHeight;
    }

    public MaxListView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public MaxListView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    public MaxListView(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // TODO Auto-generated method stub
        if (listViewHeight > -1) {
            heightMeasureSpec = MeasureSpec.makeMeasureSpec(listViewHeight,
                    MeasureSpec.AT_MOST);
        }
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

}
lv_kechengbiaoqian.setListViewHeight(500);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现 QML 的 ListView 多级目录,您需要自定义一个 model。下面是一个简单的示例: ```qml ListModel { id: myModel ListElement { text: "Fruits" children: [ ListElement { text: "Apple" }, ListElement { text: "Banana" }, ListElement { text: "Orange" } ] } ListElement { text: "Vegetables" children: [ ListElement { text: "Carrot" }, ListElement { text: "Broccoli" }, ListElement { text: "Lettuce" } ] } } ``` 上述代码定义了一个 ListModel,其中包含两个 ListElement。每个 ListElement 都有一个 text 属性和一个 children 属性,children 属性是一个嵌套的 ListModel,表示该元素下面的子元素。 接下来,您需要在 QML 文件中创建一个 ListView,并将其绑定到您的自定义 model。代码如下: ```qml ListView { id: myListView model: myModel delegate: Item { width: parent.width height: 40 Text { text: model.text font.bold: model.children ? true : false } ListView { width: parent.width height: childrenListView.contentHeight model: model.children visible: model.children ? true : false delegate: Item { width: parent.width height: 40 Text { text: model.text } } id: childrenListView } } } ``` 上述代码创建了一个 ListView,其中的 delegate 是一个 Item。在 Item 中,我们创建了一个 Text 来显示该项的 text 属性,并根据 children 属性的有无设置字体是否加粗。 接着,我们创建了另外一个 ListView 作为子项列表,并将其绑定到该项的 children 属性。我们也在该 ListView 的 delegate 中创建了一个 Text 来显示子项的 text 属性。 通过这种方式,您可以创建一个多级目录的 ListView。当用户点击父项时,子项会显示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值