WANTED: TableLayout-Like ListView

A minha pergunta pode ser: "Como criair uma linha LineairLayout de linha única com dois TextViews não-envolventes de uma única linha, onde o TextView esquerdo sempre ocupa 1/3 da lairgura da canvas disponível, o TextView direito sempre ocupa 2/3 de a lairgura da canvas disponível e os labels de text truncam com … quando são muito longos paira serem exibidos? " (Se essa pergunta for claira o suficiente e o leitor – é você – já tem em mente uma solução que eles estão dispostos a compairtilhair, a leitura do problema e a descrição das perguntas podem ser desnecessárias.)

Um ListView preenchido com quatro tais LineairLayouts seria então algo assim:

  • BadPaircelableException: ClassNotFoundException quando desmaircada
  • Android: notifyDataSetChanged () não atualizando listview após a mudança de orientação
  • Como exibir um ImageView progressivamente paira baixo, de cima paira baixo
  • como acessair um elemento específico de cada item de exibição de grade
  • Android (Java) HttpURLConnection repetição silenciosa no timeout 'read'
  • Android: Como desativair o amplificador de seleção no ICS?
  • medium length text ---- short text short text ---- text that is too loooooooooooooo... loooooooooooooo... ---- short text loooooooooooooo... ---- text that is too loooooooooooooo... 

    Nesta maquete, na primeira linha , os labels de text esquerdo e direito eram suficientemente curtos o suficiente paira exibir completamente, na segunda linha , o label esquerdo era suficientemente curto paira exibir completamente, enquanto o text da etiqueta certa era muito longo e foi, portanto, truncado e o início do text do label correto alinhado viewticalmente com o text correto da primeira linha, criando visualmente uma coluna como se estivesse em um TableLayout, na terceira linha , o text do label esquerdo também era longo e foi truncado paira se alinhair viewticalmente com o text esquerdo das segundas e primeiras linhas e o text da etiqueta certa começou viewticalmente alinhado com o text correto das segundas e primeiras linhas e , na quairta linha , o text de o label esquerdo era muito longo e, portanto, foi exibido de forma semelhante ao text esquerdo da terceira linha, e o text do label certo era muito longo e, portanto, foi exibido de forma semelhante ao text correto da segunda linha.

    De várias postagens no stackoviewflow e em outros lugaires, eu acho que, ao usair um TableLayout com um ArrayAdapter, é um tanto possível, há desvantagens, e provavelmente não é a abordagem certa a ser tomada.

    Eu certamente tentei muitas combinações de pairâmetros de layout, mas nada ainda chegou muito perto do objective. Estou tentando descobrir uma solução que funcionairá em vários tamanhos de canvas diferentes, portanto, especificair lairguras de pixels específicas provavelmente não funcionairia muito bem.

    Talvez o seguinte exemplo de código simples (com captura de canvas) seja um bom ponto de pairtida paira a solução, e só precisa de pequenas modificações.

    (O formatador de código de stackoviewflow estava falando sobre esse código. Por isso, perdoe qualquer formatting funky.)

     public class TableLayoutLikeListView extends ListActivity { @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list); List<Datum> data = new ArrayList<Datum>(); data.add(new Datum("short", "short")); data.add(new Datum("short", "loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng")); data.add(new Datum("loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng", "short")); data.add(new Datum("loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng", "loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng")); setListAdapter(new MyAdapter(this, R.layout.row, data)); } } { public class TableLayoutLikeListView extends ListActivity { @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list); List<Datum> data = new ArrayList<Datum>(); data.add(new Datum("short", "short")); data.add(new Datum("short", "loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng")); data.add(new Datum("loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng", "short")); data.add(new Datum("loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng", "loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng")); setListAdapter(new MyAdapter(this, R.layout.row, data)); } } { public class TableLayoutLikeListView extends ListActivity { @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list); List<Datum> data = new ArrayList<Datum>(); data.add(new Datum("short", "short")); data.add(new Datum("short", "loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng")); data.add(new Datum("loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng", "short")); data.add(new Datum("loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng", "loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng")); setListAdapter(new MyAdapter(this, R.layout.row, data)); } } } public class TableLayoutLikeListView extends ListActivity { @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list); List<Datum> data = new ArrayList<Datum>(); data.add(new Datum("short", "short")); data.add(new Datum("short", "loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng")); data.add(new Datum("loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng", "short")); data.add(new Datum("loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng", "loooooooooooooooooooooooooooooooooooooooooonnnnnnnnnnnnnnnnnnnnnng")); setListAdapter(new MyAdapter(this, R.layout.row, data)); } } 
     class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } { class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } { class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } this.right = right; class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } } class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } } class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } { class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } { class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } } class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } { class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } { class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } } class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } { class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } { class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } } class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } { class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } } class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } } class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } } class Datum { String left, right; Datum(String left, String right) { this.left = left; this.right = right; } } class MyAdapter extends ArrayAdapter<Datum> { List<Datum> data; int textViewResourceId; MyAdapter(Context context, int textViewResourceId, List<Datum> data) { super(context, textViewResourceId, data); this.data = data; this.textViewResourceId = textViewResourceId; } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); conviewtView = inflater.inflate(textViewResourceId, null); } Datum datum = data.get(position); if (datum != null) { TextView leftView = (TextView) conviewtView.findViewById(R.id.left); TextView rightView = (TextView) conviewtView.findViewById(R.id.right); if (leftView != null) { leftView.setText(datum.left); } if (rightView != null) { rightView.setText(datum.right); } } return conviewtView; } } 

     list.xml: <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ListView android:id="@+id/android:list" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LineairLayout> 
     row.xml: <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_pairent" android:layout_height="wrap_content" android:weightSum="3"> <TextView android:id="@+id/left" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:singleLine="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="----" /> <TextView android:id="@+id/right" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="2" android:singleLine="true" /> </LineairLayout> 

    (Observe que, enquanto o TextView possui o atributo elipse, não pairece necessário alterair, pois a configuration singleLine paira true trunca e ellipsizes as etiquetas já. Eu posso estair errado sobre isso.)

    A seguir, uma captura de canvas desse código em ação:

    É clairo que todos os conselhos são apreciados.

  • Alternativa obsoleta BitmapDrawable
  • setCurrentItem no ViewPager não rola imediatamente na position correta
  • Existe um #ifdef ANDROID equivalente a #ifdef WIN32
  • Use ColorMatrix ou HexColor no BlendModeFilter - Android?
  • PARSE: Push Notifications "deviceToken" indeterminado
  • Qual é a diferença entre os methods SOAP 1.1, SOAP 1.2, HTTP GET e HTTP POST paira o Android?
  • 4 Solutions collect form web for “WANTED: TableLayout-Like ListView”

    Você pode usair TableLayout e fazê-lo se comportair como ListView (pelo less visualmente). Aqui está a minha resposta.

    Eu acho que este tutorial irá ajudá-lo. Experimente isso ..

    Seu row.xml deve se pairecer com:

     <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:gravity="left|center" android:layout_width="wrap_content" android:paddingBottom="10px" android:paddingTop="10px" android:paddingLeft="3px"> <TextView android:id="@+id/TextView01" android:layout_width="70dip" android:layout_height="wrap_content" android:gravity="left" android:singleLine="true" android:textSize="15dip" android:textStyle="bold" android:textColor="#d08021" android:paddingLeft="20dip"> </TextView> <TextView android:id="@+id/TextView02" android:layout_width="200dip" android:layout_height="wrap_content" android:gravity="left" android:singleLine="true" android:layout_mairginLeft="10dip" android:textSize="15dip" android:textStyle="bold" android:textColor="#7f0000"> </TextView> </LineairLayout> 

    Você precisa deste tipo de layout certo? Corrija-me se eu não estou errado. Veja a saída quando eu tentei o arquivo de layout acima.

    hackbod apresenta outro airgumento de boa apairência quanto ao porquê ListViews não pode include linhas de layout como TableViews em uma resposta à pergunta O Android possui uma Tabela como Adaptador paira ListView .

    O melhor que posso surgir é ter um row.xml que paireça ser assim. Não é ideal, mas manterá as linhas com uma lairgura fixa, que será dimensionada em uma mudança de dimensões, mas não baseada no text. Isso lhe dairá 80% de um layout de tabela, com os benefícios de um ListView.

     <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:gravity="left|center" android:layout_width="wrap_content" android:paddingBottom="10px" android:paddingTop="10px" android:paddingLeft="3px"> <TextView android:id="@+id/TextView01" android:layout_width="0dp" android:layout_weight=1 android:layout_height="wrap_content" android:gravity="left" android:singleLine="true" android:textSize="15dip" android:textStyle="bold" android:textColor="#d08021" android:paddingLeft="20dip"> </TextView> <TextView android:id="@+id/TextView02" android:layout_width="0dp" android:layout_weight=3 android:layout_height="wrap_content" android:gravity="left" android:singleLine="true" android:layout_mairginLeft="10dip" android:textSize="15dip" android:textStyle="bold" android:textColor="#7f0000"> </TextView> </LineairLayout> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.