【问题标题】:How to Create a HorizontalListView?如何创建一个水平列表视图?
【发布时间】:2015-04-16 05:49:56
【问题描述】:

我必须创建一个Horizontallistview,但我不知道从哪里开始我尝试进行google 搜索,但我找不到任何适用于 xamarin 的内容有人有任何想法吗?一个是应该有一个自定义的行布局

编辑:

好的,我找到了这个教程,但是代码是 java,我必须将它转换为 c#

http://www.dev-smart.com/archives/34

第一个问题是 Horizo​​ntalListview 扩展了 Activity 但我必须子类化我该怎么做?

public class HorizontalListViewDemo extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.listviewdemo);

        HorizontialListView listview = (HorizontialListView) findViewById(R.id.listview);
        listview.setAdapter(mAdapter);

    }

    private static String[] dataObjects = new String[]{ "Text #1",
        "Text #2",
        "Text #3" }; 

    private BaseAdapter mAdapter = new BaseAdapter() {


        public override int getCount() {
            return dataObjects.length;
        }


        public override Object getItem(int position) {
            return null;
        }


        public override long getItemId(int position) {
            return 0;
        }


        public override View getView(int position, View convertView, ViewGroup parent) {
            View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewitem, null);
            TextView title = (TextView) retval.findViewById(R.id.title);
            title.setText(dataObjects[position]);

            return retval;
        }

    };

}

【问题讨论】:

  • 天啊!!!甚至 Google 也没有答案。因为你的问题不仅仅是一个问题,它是一个火箭问题
  • 签出this
  • 我使用RecyclerView 和 Horizo​​ntal GridLayoutManager 来实现这样的功能..

标签: java c# android xamarin xamarin.android


【解决方案1】:

你可以通过这个 ListView 教程是here

【讨论】:

    【解决方案2】:

    结帐twoway-view。双向视图上的小 tutorial

    【讨论】:

      【解决方案3】:

      将 Java 代码移植到 C# 并不难。大多数情况下,您可以尝试将方法的第一个字母大写。 super 变成 base。 Java 不知道属性,这就是为什么 SetFoo() 和/或 GetFoo() 在 C# 中成为属性 FooR 必须是 Resource

      在 C# 中,您使用“:”作为子类,因此第一部分将如下所示。

      public class HorizontalListViewDemo : Activity
      {    
          protected override void OnCreate(Bundle savedInstanceState)
          {
              base.OnCreate(savedInstanceState);
      
              SetContentView(Resource.Layout.listviewdemo);
      
              //this is possible
              HorizontialListView listview = (HorizontialListView) FindViewById(Resource.Id.listview);
      
              //but this is also a way to go
              HorizontialListView listview = FindViewById<HorizontialListView>(Resource.Id.listview);
      
              listview.Adapter = mAdapter;
      
              ...
          }
      }
      

      另一种解决方案可能是ViewPager 小部件。

      【讨论】:

        猜你喜欢
        • 2015-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多