android - NativeScript ListView 元素模板

标签 android css listview nativescript

我想创建一个带有自定义元素 View 的 ListView NativeScript。我正在使用 GridLayout 来做到这一点。 问题是:行元素之间有很大的空间。

这些是我所做的:

XML:

<Page loaded="loaded">
<ActionBar title="Welcome">
    <android>
        <NavigationButton android.systemIcon="ic_menu_emoticons" icon="res://icon" tap="showSlideout"/>
    </android>
</ActionBar>
<ListView items="{{ items }}">
    <ListView.itemTemplate>
        <GridLayout rows="auto" columns="auto,*" class="threads-list-wrapper" height="100">
            <Image row="0" col="0" src="{{ photo }}"></Image>
            <StackLayout row="0" col="1" class="" orientation="vertical">
                <Label class="h1" text="{{title}}"></Label>
                <Label text="{{ body }}"></Label>
                <Label text="{{ date }}"></Label>
            </StackLayout>
        </GridLayout>
    </ListView.itemTemplate>
</ListView>

CSS

.threads-list-wrapper {
padding: 15;
}

.threads-list-wrapper > Image {
height: 64;
width: 64;
margin-right: 15;
}

代码:

var observableModule = require("data/observable");
var model = new observableModule.Observable();

exports.loaded = function (args) {
    var items = [
        {
            photo: 'res://icon',
            title: 'Ardiansyah Putra',
            body: 'Ini adalah pesan yang saya kirimkan kepada anda, mohon cepat dibalas ya',
            date: 'Just Now'
        },
        {
            photo: 'res://icon',
            title: 'Bagus Putra',
            body: 'Ini adalah pesan yang saya kirimkan kepada anda, mohon cepat dibalas ya',
            date: '12 Jan'
        }
    ];
    var page = args.object;
    model.set("items", items);
    page.bindingContext = model;
};

结果: enter image description here

最佳答案

不确定究竟是什么导致了您的情况中的空白,但这里有一个 fragment ,其中在剥离所有 CSS 后, ListView 模板中没有生成额外的空白。

<GridLayout rows="*" columns="*, *">
    <Image col="0" src="res://icon" stretch="none" />
    <StackLayout col="1" >
        <Label class="h1" text="{{title}}"></Label>
        <Label text="{{ body }}"></Label>
        <Label text="{{ date }}"></Label>
    </StackLayout>
</GridLayout>

关于android - NativeScript ListView 元素模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41058539/

相关文章:

android - 即使使用输入管理器也无法隐藏 Android 软键盘

html - 在 CSS 中创建 "complex"背景

jquery - 每次悬停父菜单时,如何延迟子菜单? (前端)

wpf - 如何使 WPF ListView 不高于其内容但适合其他控件的窗口?

android - 某些 unicode 字符不会在某些设备上呈现

android - PercentFrameLayout 作为 Recycler View 中的一个项目不起作用

javascript - google chrome beta for android 是否支持带有 webkitdirectory 属性的文件上传?

html - 如何在 Angular 中自动滚动?

android - 使用自定义 CursorAdapter 时 ListView 未显示在 Activity 中

java - 将项目添加到 ListView 适配器中的特定列