Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ListView view = new ListView(this);
- MyAdapter adapter = new MyAdapter(this);
- view.Adapter = adapter;
- mainLayout.AddView(view);
- adapter.Add("111");
- adapter.Add("222");
- adapter.Add("333");
- adapter.Add("444");
- private class MyAdapter : ArrayAdapter<string> {
- private int m_preferredListHeight = -1;
- public MyAdapter(Context ctx) : base(ctx, 0) { }
- public override View GetView(int position, View convertView, ViewGroup parent) {
- LinearLayout layout = new LinearLayout(this.Context) { Orientation = Orientation.Horizontal };
- ImageView icon = new ImageView(this.Context);
- icon.SetImageDrawable(this.Context.Resources.GetDrawable(Resource.Drawable.icon_large));
- icon.SetAdjustViewBounds(true);
- icon.SetMaxHeight(GetPreferredListHeight());
- layout.AddView(icon);
- TextView text = new TextView(this.Context);
- text.Text = GetItem(position);
- layout.AddView(text);
- return layout;
- }
- private int GetPreferredListHeight() {
- if (this.m_preferredListHeight == -1) {
- TypedValue typedValue = new TypedValue(); //create a new typed value to received the resolved attribute value
- DisplayMetrics displayMetrics = this.Context.Resources.DisplayMetrics;
- int resId = Android.Resource.Attribute.ListPreferredItemHeight;
- if (!this.Context.Theme.ResolveAttribute(resId, typedValue, true)) {
- throw new ArgumentException("Resource ID #" + resId);
- }
- if (typedValue.Type != DataType.Dimension) {
- throw new ArgumentException("Resource ID #" + resId + " type " + typedValue.Type + " is not valid");
- }
- this.m_preferredListHeight = TypedValue.ComplexToDimensionPixelSize(typedValue.Data, displayMetrics);
- }
- return this.m_preferredListHeight;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement