【问题标题】:Why are they sticking towards each other?他们为什么要相互依偎?
【发布时间】:2016-08-11 15:18:23
【问题描述】:

我正在尝试获取一个简单的自定义列表视图,但当元素相互粘连时我感到震惊,这看起来比以往更糟糕。我创建了 program_list.xml 文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="fill_horizontal|center_horizontal">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="1"
    android:id="@+id/TVIDC"
    android:layout_weight="1" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Name"
    android:id="@+id/TVNameC"
    android:layout_weight="1" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Date"
    android:id="@+id/TVDateC"
    android:layout_weight="1" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="0.00"
    android:id="@+id/TVAmountC"
    android:layout_weight="1" />
</LinearLayout>

这是自定义列表文件:

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class CustomList extends ArrayAdapter<String> {

private final Activity context;
private final Integer[] id;
private final String[] name;
private final Integer[] amount;
private final String[] date;


public CustomList(Activity context, Integer[] id, String[] name, Integer[] amount, String[] date) {
    super(context, R.layout.program_list, name);
    this.context = context;
    this.id = id;
    this.name = name;
    this.amount = amount;
    this.date = date;

}

@Override
public View getView(int position, View view, ViewGroup parent) {
    LayoutInflater inflater = context.getLayoutInflater();
    View rowView = inflater.inflate(R.layout.program_list, null, true);
    TextView txtId = (TextView) rowView.findViewById(R.id.TVIDC);
    TextView txtName = (TextView) rowView.findViewById(R.id.TVNameC);
    TextView txtAmount = (TextView) rowView.findViewById(R.id.TVAmountC);
    TextView txtDate = (TextView) rowView.findViewById(R.id.TVDateC);


    txtId.setText(id[position]+"");
    txtName.setText(name[position]);
    txtAmount.setText(amount[position]+"");
    txtDate.setText(date[position]);


    return rowView;
}
}

快速找到解决方案,我很震惊,想在 Play 商店上传应用程序并参考图片来解决主要问题。提前感谢大家,我必须写一些愚蠢的细节才能删除红色框,不要想太多,因为要发布,我必须删除这个框。这个傻盒子还没有消失。嘿堆栈溢出!它疯了。

这导致了问题:

但我想要这个:

【问题讨论】:

  • 将所有文本视图的宽度从 wrapcontent 更改为 match_parent
  • 没用!!建议别的.....
  • 我没有对您的布局进行任何更改,并使用您的自定义适配器制作了相同的程序,它对我来说很好
  • 尝试清理您的项目并重建它
  • 没用,我的模拟器有问题吗?我使用 genymotion

标签: android custom-lists


【解决方案1】:

将视图的宽度更改为android:layout_width="0dp"。另外,我认为你不需要这条线android:gravity="fill_horizontal|center_horizontal"

【讨论】:

    【解决方案2】:

    LinearLayout 父级中应该缺少总和。

    替换

    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="fill_horizontal|center_horizontal">
    

    通过

    <LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="fill_horizontal|center_horizontal"
    android:weightSum="4">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 2010-09-30
      • 2011-12-18
      • 2018-03-28
      • 2019-05-27
      相关资源
      最近更新 更多