Установите в первой строке имя столбца и настройте ширину столбца - PullRequest
1 голос
/ 04 июня 2019

У меня проблема. Я создал GridView с пользовательским адаптером. GridView выглядит так: enter image description here

Как видите, имена столбцов не совпадают с самим столбцом, поскольку имена столбцов являются текстовыми представлениями. Поэтому я хочу сделать что-то вроде: когда заполнение сетки будет выполнено и в первой строке вы сначала напечатаете имена столбцов. В результате я хочу это: enter image description here

И когда это будет сделано, я хочу настроить ширину столбца для всего столбца на самое длинное значение, которое. Поэтому, когда у меня есть только Buy и Sell, я хочу, чтобы столбец Action покупал столько же, сколько и имя Action, потому что это самое длинное значение. Но когда придет значение Withdrawal, оно будет таким же длинным, как и это имя. Вот самый важный код моего GridViewAdapter:

public class OrderListAdapter : BaseAdapter<order>
{
    public List<order> mItems;
    private Context mContext;

    public OrderListAdapter(Context context, List<order> items)
    {
        mItems = items;
        mContext = context;
    }

    public override int Count
    {
        get { return mItems.Count; }
    }

    public void refresh(List<order> mItems)
    {
        this.mItems = mItems;
        NotifyDataSetChanged();
    }

    public override long GetItemId(int position)
    { 
        return position;
    }

    public override order this[int position]
    {
        get { return mItems[position]; }
    }

    public override View GetView(int position, View convertView, ViewGroup parent)
    {

        View row = convertView;

        if (row == null)
        {
            row = LayoutInflater.From(mContext).Inflate(Resource.Layout.orderlist_row, null, false);

            var txtOrderAction = row.FindViewById<TextView>(Resource.Id.txtOrderAction);
            var txtOrderCoin = row.FindViewById<TextView>(Resource.Id.txtOrderCoin);
            var txtOrderQuantity = row.FindViewById<TextView>(Resource.Id.txtOrderQuantity);
            var txtOrderPrice = row.FindViewById<TextView>(Resource.Id.txtOrderPrice);
            var txtOrderStatus = row.FindViewById<TextView>(Resource.Id.txtOrderStatus);
            var txtOrderProfit = row.FindViewById<TextView>(Resource.Id.txtOrderProfit);
            var LayoutProfit = row.FindViewById<LinearLayout>(Resource.Id.LayoutProfit);

            row.Tag = new OrderViewHolder() {
                txtOrderAction = txtOrderAction,
                txtOrderCoin = txtOrderCoin,
                txtOrderQuantity = txtOrderQuantity,
                txtOrderPrice = txtOrderPrice,
                txtOrderStatus = txtOrderStatus,
                txtOrderProfit = txtOrderProfit,
                LayoutProfit = LayoutProfit };
        }

        var holder = (OrderViewHolder)row.Tag;

        return row;
    }
}

С Order.cs:

public class order
{
    public int Id { get; set; }
    public int AgentId { get; set; }
    public string Action { get; set; }
    public string Market { get; set; }
    public string Coin { get; set; }
    public decimal Quantity { get; set; }
    public decimal Amount { get; set; }
    public decimal LimitValue { get; set; }
    public decimal TriggerValue { get; set; }
    public decimal Price { get; set; }
    public decimal Trans_Quantity { get; set; }
    public decimal Trans_Amount { get; set; }
    public decimal Trans_Price { get; set; }
    public decimal Trans_Fee_Coin { get; set; }
    public decimal Trans_Fee_USDT { get; set; }
    public decimal Trans_USDT { get; set; }
    public string Status { get; set; }
    public string State { get; set; }
    public DateTime DateTimeEntered { get; set; }
    public DateTime DateTimePlanned { get; set; }
    public DateTime DateTimeExecuted { get; set; }
    public string Remark { get; set; }
    public string Strategy { get; set; }
    public decimal ProfitUSDT { get; set; }
    public decimal ProfitPerc { get; set; }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...