Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin高亮显示ListView中的行_Listview_Xamarin_Xamarin.forms_Xamarin.android - Fatal编程技术网

Xamarin高亮显示ListView中的行

Xamarin高亮显示ListView中的行,listview,xamarin,xamarin.forms,xamarin.android,Listview,Xamarin,Xamarin.forms,Xamarin.android,我是Xamarin/Android的新手。我有一个大约20行的listview(要查看最后几行,用户需要向下滚动)。我需要根据一些计算值自动高亮显示随机行。我的问题是,一旦填充了listview(我有一个自定义适配器来填充listview),我如何设置所选行的背景色或前景色(例如第三行,高亮显示10秒,然后高亮显示第一行-行号基于计算) 我还可以自动向上/向下滚动以显示当前不在屏幕范围内的行吗?例如,如果我当前高亮显示第2行,接下来我需要高亮显示第15行,我希望应用程序自动向下滚动并高亮显示第1

我是Xamarin/Android的新手。我有一个大约20行的listview(要查看最后几行,用户需要向下滚动)。我需要根据一些计算值自动高亮显示随机行。我的问题是,一旦填充了listview(我有一个自定义适配器来填充listview),我如何设置所选行的背景色或前景色(例如第三行,高亮显示10秒,然后高亮显示第一行-行号基于计算)

我还可以自动向上/向下滚动以显示当前不在屏幕范围内的行吗?例如,如果我当前高亮显示第2行,接下来我需要高亮显示第15行,我希望应用程序自动向下滚动并高亮显示第15行。可能吗

下面是我的自定义适配器

public class PeopleListAdapter: BaseAdapter<Content>
    {
        List<Content> content;
        Activity context;
        public PeopleListAdapter(Activity context, List<Content> content) : base()
        {
            this.context = context;
            this.content = content;
        }
        public override long GetItemId(int position)
        {
            return position;
        }
        public override Content this[int position]
        {
            get { return content[position]; }
        }
        public override int Count
        {
            get { return content.Count; }
        }
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            View view = convertView; // re-use an existing view, if one is available
            if (view == null) // otherwise create a new one
                view = context.LayoutInflater.Inflate(Resource.Layout.listlayout, null);
            view.FindViewById<TextView>(Resource.Id.txtValues).Text = content[position].Text;
            return view;
        }
    }
公共类PeopleListAdapter:BaseAdapter { 列出内容; 活动语境; PublicPeopleListAdapter(活动上下文,列表内容):base() { this.context=上下文; this.content=内容; } 公共覆盖长GetItemId(int位置) { 返回位置; } 公共内容覆盖此[int位置] { 获取{返回内容[位置];} } 公共覆盖整数计数 { 获取{return content.Count;} } 公共覆盖视图GetView(int位置、视图转换视图、视图组父视图) { View=convertView;//如果现有视图可用,则重新使用该视图 if(view==null)//否则创建一个新的 视图=context.LayoutInflater.Inflate(Resource.Layout.listlayout,null); view.FindViewById(Resource.Id.txtValues)。Text=content[position]。Text; 返回视图; } } 下面列出的是我的listview布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minWidth="25px"
    android:minHeight="25px">

  <ListView
       android:minWidth="25px"
       android:minHeight="25px"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:id="@+id/list" >    
  </ListView>
</LinearLayout>

我让适配器填充以下布局(listlayout.axml):



请建议我是否做得对。我是新来的。我还想知道,鉴于上述实现,如何突出显示我所选择的行。

在getview方法中,您有一个视图,您要为每一行充气:

 View view = convertView; // re-use an existing view, if one is available

 if (view == null) // otherwise create a new one
 view = context.LayoutInflater.Inflate(Resource.Layout.listlayout, null);
在这里,为视图指定标记属性。i、 e.视图。设置标签(位置)

然后在同一方法getview中,添加一个检查(Integer.parserInt(view.getTag())==positionToHighlight),然后设置视图的背景色。例如:视图。挫折背景()

 View view = convertView; // re-use an existing view, if one is available

 if (view == null) // otherwise create a new one
 view = context.LayoutInflater.Inflate(Resource.Layout.listlayout, null);