簡體   English   中英

Android列表視圖項目對齊

[英]Android List View Items Alignment

我有一個列表視圖,可以在其中動態添加項目。 我希望某些項目(我選擇的)應與左側對齊,而另一些應與右側對齊。 Android的ListView可以實現此功能嗎?

//適配器

if (convertView == null) {
                holder = new EventViewHolder();
                if (type == 1) {
                    convertView = inflater.inflate(
                            R.layout.multi_line_list_item, null);
                    holder.mtvMessage = (TextView) convertView
                    .findViewById(R.id.tvMessage);
                    holder.mtvMessage.setGravity(Gravity.LEFT);
                    holder.mtvMessage.setBackgroundResource(R.drawable.chatbluebox);
                    convertView.setTag(holder);
                }else{
                    convertView = inflater.inflate(
                            R.layout.multi_line_list_item, null);
                    holder.mtvMessage = (TextView) convertView
                    .findViewById(R.id.tvMessage);
                    holder.mtvMessage.setGravity(Gravity.RIGHT);
                    holder.mtvMessage.setBackgroundResource(R.drawable.chatgreenbox);
                    convertView.setTag(holder);

            }

請讓我知道是否可以解決,並建議我一個好的解決方案?

android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"

將這些行添加到listView xml條目中。

對於左右對齊,請維護兩個布局xml,一個保持右對齊,另一個保持左對齊(無論您要看什么),然后在listAdapter的getView()方法中設置一些條件並根據需要對這些xml進行充氣

if (convertView == null)
    if(some condition)
        convertView = mInflater.inflate(R.layout.rightxml, null);
    else
        convertView = mInflater.inflate(R.layout.leftxml, null);
    ....

看看ListView模式stackFromBottomtranscriptMode可以為您完成大部分工作。

要使單元格中的項目左右對齊,可以在Adapters getView方法中將重力設置為左右。

使用以下內容。

adapter.notifyDataSetChanged();

接着

listView.setSelection(items.size()-1);

對於重力,您需要在getview()方法中動態設置重力。

例如 :-

textview1.setGravity(Gravity.RIGHT);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM