标签: listviewitem

Android ListView,每行有不同的布局

我试图确定一个包含每行不同布局的单个ListView的最佳方法.我知道如何创建自定义行+自定义数组适配器以支持整个列表视图的自定义行,但是如何在ListView中实现许多不同的行样式?

android listview listviewitem

341
推荐指数
4
解决办法
19万
查看次数

ListViewItem不会拉伸到ListView的宽度

我目前正在使用XAML设计一个Windows 8商店应用程序,但我有一个小的尺寸问题.我有一个带有DataTemple的ListView.

我的ListView和DataTemplate的代码如下:

<ListView x:Name="listPageItems"
          Grid.Row="1"
          SelectionMode="Extended"
          IsSwipeEnabled="False"
          ItemsSource="{Binding Mode=OneWay, Source={StaticResource items}}"
          ItemTemplate="{StaticResource NavigationItemTemplate}"
          ScrollViewer.VerticalScrollBarVisibility="Visible">

</ListView>

<DataTemplate x:Key="NavigationItemTemplate">    
        <Grid Height="75">
            <Grid.RowDefinitions>
                <RowDefinition Height="1.6*" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <Rectangle Fill="White" />
            <Rectangle Fill="{StaticResource SSEGreenBrush}"
                       Grid.Row="1" />
            <Border BorderThickness="2"
                    BorderBrush="{StaticResource SSEGreenBrush}"
                    Grid.RowSpan="2" />
            <TextBlock x:Name="textTitle"
                       Text="{Binding ClientName}"
                       Style="{StaticResource TitleTextStyle}"
                       Foreground="{StaticResource SSEBlueBrush}"
                       Margin="10,5,5,5" />
            <StackPanel Orientation="Horizontal"
                        Grid.Row="1"
                        HorizontalAlignment="Stretch">
                <TextBlock Text="Last Edit :"
                           Style="{StaticResource SubtitleTextStyle}"
                           Foreground="{StaticResource SSEBlueBrush}"
                           Margin="3,0,0,3"
                           VerticalAlignment="Center" />
                <TextBlock Text="SurveyDate"
                           Style="{StaticResource SubtitleTextStyle}"
                           Foreground="{StaticResource SSEBlueBrush}"
                           Margin="3,0,0,3"
                           VerticalAlignment="Center" />
            </StackPanel>
        </Grid>
    </DataTemplate>
Run Code Online (Sandbox Code Playgroud)

列表视图位于网格列中,其固定宽度为240. …

listviewitem windows-8 winrt-xaml

79
推荐指数
1
解决办法
3万
查看次数

如何在WPF中实现虚线或虚线边框?

我有一个ListViewItem我正在申请一个Style,我想把一个虚线灰色线作为底部Border.

我怎么能在WPF中这样做?我只能看到纯色画笔.

wpf styles border listviewitem

68
推荐指数
4
解决办法
6万
查看次数

Buggy ListView让我感到难过

我有一个ListView地方,我在一个单独的XML文件中定义了每个项目的布局.在这个文件中,我包含了一个RatingBar和一个EditText.

我已经以编程方式创建了7-8个项目ListView.当我滚动它们时,它似乎是非常错误的.这里有些例子:

  1. 如果我将焦点设置到EditText第一行然后向下滚动,则其他行中的ListView随机EditTexts将具有焦点.似乎是EditText在焦点消失后的下一个消失得到了焦点.也许这是故意的,但是,作为一个用户,它似乎很奇怪.

  2. 如果我将焦点设置为a EditText,接收虚拟键盘,键入内容,然后单击虚拟键盘上的"完成"按钮,EditText一旦虚拟键盘消失,它将清空.

  3. 有时,当我点击一个EditText,接收一个虚拟键盘并开始输入字母时,一旦我输入它们,这些字母就会消失.

  4. 当我点击一个EditText,虚拟键盘显示自己,但EditText失去焦点,我必须EditText再次点击.

  5. 尽管我已经设置了RatingBarfocusable="false",如果我将我的滚轮,它仍然抓住重点.

我的一个问题是,当我在虚拟键盘中键入一个字符时,所有可见的列表项都会重新绘制(并且由于文本EditText被设置为某些数据,这是空的,它会被清除.我不明白为什么Android会每次键入一个字符时都决定重新绘制列表.

这是我用来绘制它们的XML.它们是白色气泡,带有灰色边框,还有一些文字,一个RatingBar和一个EditText内部:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingTop="10dip"
    android:paddingBottom="10dip"
    android:paddingLeft="15dip"
    android:paddingRight="15dip"
    >
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="2dip"
        android:background="@drawable/shape_outer">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="2dip"
            android:background="@drawable/shape_inner">
                    <TextView
                            android:id="@+id/rating_category"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textColor="@color/dark_gray"
                            android:textStyle="bold"
                            android:layout_marginBottom="10dip" />
                        <RatingBar …
Run Code Online (Sandbox Code Playgroud)

android listview listviewitem virtual-keyboard

35
推荐指数
2
解决办法
1万
查看次数

如何为TextView定义ColorStateList?

当我ListViewItem突出显示时,我希望文本变为白色.我怎么定义这个?

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_focused="true" android:color="@color/testcolor1"/>
   <item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" />
   <item android:state_enabled="false" android:color="@color/testcolor3" />
   <item android:color="@color/testcolor5"/>
 </selector>
Run Code Online (Sandbox Code Playgroud)

android listview colors listviewitem

31
推荐指数
2
解决办法
4万
查看次数

如何在焦点和单击上更改ListView项目的颜色

我在我的应用程序中有一个列表视图(这是xml布局):

   <?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/arrayList"
       android:layout_width="fill_parent"
android:layout_height="fill_parent"
       android:textFilterEnabled="true"
       android:scrollbars="vertical"
       android:drawSelectorOnTop="true">
</ListView>
Run Code Online (Sandbox Code Playgroud)

我的列表View中的每个项目都由两个TextView组成:

    <?xml version="1.0" encoding="utf-8"?>
<TableLayout android:layout_width="fill_parent"
       xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row_container"
       android:padding="5px" android:layout_height="wrap_content"
       android:background="@color/white" android:shrinkColumns="0">
               <TableRow>
               <TextView android:layout_height="wrap_content"
                       android:layout_width="wrap_content" android:layout_below="@+id/
description"
                       android:id="@+id/description"
                       android:textColor="@color/black"
                       android:scrollHorizontally="true"
                       android:singleLine="true"></TextView>
       </TableRow>
       <TableRow>
               <TextView android:layout_width="wrap_content"
                       android:layout_height="wrap_content" android:id="@+id/result"
                       android:textColor="@color/grey"
                       android:maxLines="1"
                       android:scrollHorizontally="true"></TextView>
       </TableRow>

</TableLayout>
Run Code Online (Sandbox Code Playgroud)

我正在以这种方式从ArrayAdapter填充我的listView:

public class Matches extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);        
    //set layout

    setContentView(R.layout.list_layout);
  // obtain reference to listview
  ListView listView = …
Run Code Online (Sandbox Code Playgroud)

android listview background-color listviewitem

27
推荐指数
3
解决办法
12万
查看次数

在SingleChoice模式下使用RadioButton的Android ListView和自定义行布局

我有一个ListView,它处于singleChoice模式.我想要的只是在侧面显示一个RadioButton,当点击高亮显示它被选中时,当点击另一个时,一个返回到未选择状态,新的一个被选中.为什么这么难?这不应该是这么复杂.我已经花了DAYS寻找合适的答案而且我什么也没找到,所以我希望以清晰简洁的方式提出要求.

我对listview的布局(R.layout.view_orders):

<?xml version="1.0" encoding="utf-8"?>
<ListView 
        android:choiceMode="singleChoice"
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:divider="@drawable/list_divider"
        android:dividerHeight="1px"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:cacheColorHint="#00000000">
</ListView>
Run Code Online (Sandbox Code Playgroud)

我的自定义行(R.layout.orders_row):

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    xmlns:app="http://schemas.android.com/apk/res/com.xxx.xxxxxx"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="6dip">

    <com.xxx.xxxxxx.VerticalLabelView
        app:text="SHORT"
        app:textColor="#666"
        app:textSize="14sp"
        android:id="@+id/state"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true" />

    <TextView
        android:id="@+id/quantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/state" 
        android:layout_centerVertical="true"
        android:gravity="center"
        android:textSize="40sp"
        android:layout_margin="2dip"
        android:minWidth="30dip"
        android:textColor="#555" />


    <RelativeLayout
        android:layout_toRightOf="@id/quantity"
        android:layout_centerVertical="true"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/instrument"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="#333"
            android:layout_marginLeft="2dip"
            android:layout_marginRight="2dip"
            />


        <TextView
            android:id="@+id/deets"
            android:layout_below="@id/instrument"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textSize="16sp"
            android:textColor="#888" …
Run Code Online (Sandbox Code Playgroud)

android listview listviewitem radio-button

26
推荐指数
2
解决办法
5万
查看次数

WPF ListView - 如何以编程方式添加项目?

即使我知道它不理想 - 我需要以编程方式填充listView(无论出于何种原因).

我在标记中声明我的列:

            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=Name}"/>
                    <GridViewColumn Header="Value" DisplayMemberBinding="{Binding Path=Value}"/>
                </GridView>
            </ListView.View>
Run Code Online (Sandbox Code Playgroud)

我在代码中添加这样的项目(它显然是在循环中):

            MyData data = getDataItem(index); //< -- whatever
            ListViewItem item = new ListViewItem();
            item.DataContext = data;
            this.myListView.Items.Add(item);
Run Code Online (Sandbox Code Playgroud)

MyData定义为:

public class MyData
{
    public string Name { get; set; }
    public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

正在添加项目(我可以看到行),但我看不到任何内容.

任何人都有任何线索?

任何帮助赞赏!

wpf listview populate listviewitem

24
推荐指数
1
解决办法
6万
查看次数

Android:如何隐藏ListView项目

如何隐藏ListView中的项目或至少将其高度设置为零?

我已经尝试将View的可见性设置为GONE,但它仍然保持项目的空间(高度).

android listview visibility listviewitem

21
推荐指数
4
解决办法
3万
查看次数

C#更改ListView项目/行的高度

我想在listview中更改Item的/ Row的高度.

我找遍了那里,我想通,为了改变高度,我需要使用LBS_OWNERDRAWFIXEDMeasureItem或类似的东西.

问题是我不知道该做什么以及如何使用它.
任何人都可以帮助我吗?

编辑:
我不能使用ImageList黑客,因为我使用SmallImageList是真实的,我需要从ImageList图像大小不同的行高.

谢谢!

c# listview row-height listviewitem

19
推荐指数
4
解决办法
6万
查看次数