当前位置: 首页 > 知识库问答 >
问题:

如何设置ListFragment自定义布局的分隔符(为空)

壤驷瑾瑜
2023-03-14

我正在尝试理解如何使用listfragments和自定义适配器。所以我创建了这个小示例,我想知道在哪里可以将listview的分隔符设置为NULL。

listview_item_row.xml
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/ivCountry"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" 
        android:layout_weight="1"/>

    <TextView
        android:id="@+id/tvCountry"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:gravity="center_vertical"
        android:text="TextView"
        android:layout_weight="4" />

</LinearLayout>
public class CountryList extends ListFragment {

    Country[] countries2 = new Country[]
            {
                new Country("Netherlands"),
                new Country(R.drawable.bas,"Basque Country")
            };


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        CountryAdapter adapter = new CountryAdapter(inflater.getContext(),R.layout.listview_item_row,countries2);
        setListAdapter(adapter);
        getListView().setDivider(null);

        return super.onCreateView(inflater, container, savedInstanceState);
    }
public class CountryAdapter extends ArrayAdapter<Country>{

Context context;
int layoutResourceId;
Country[] data = null;

public CountryAdapter(Context context, int layoutResourceId, Country[] data) {
    super(context,layoutResourceId,data);
    this.context = context;
    this.layoutResourceId = layoutResourceId;
    this.data = data;

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View row = convertView;
    CountryHolder holder = null;

    if (row == null) {
        LayoutInflater inflater = ((Activity)context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent,false);

        holder = new CountryHolder();
        holder.imgIcon = (ImageView) row.findViewById(R.id.ivCountry);
        holder.txtTitle = (TextView)row.findViewById(R.id.tvCountry);

        row.setTag(holder);

    } else {
        holder = (CountryHolder) row.getTag();
    }

    Country country = data[position];
    holder.txtTitle.setText(country.getTitle());
    holder.imgIcon.setImageResource(country.getIcon());

    return row;

}

static class CountryHolder
{
    ImageView imgIcon;
    TextView txtTitle;
}

共有1个答案

谯翔
2023-03-14

您总是可以通过返回onCreateView()上的视图来为ListFragment设置一个自定义视图,但您需要在其中有一个ListView,该视图带有“@id/android:list”,如文档中所述。

您可以在xml中执行android:divider=“@null”或者在ListFragment代码中执行getListView().setDivider(null);(在onActivityCreated()方法中)。

 类似资料:
  • 问题内容: 我正在用几个打标机。 当列表()中没有条目时,我想显示一条消息。 我尝试使用with,但是它不起作用。 自定义列表布局代码: 列表适配器类: 列表解析方法: 方法: 问题答案: 这对我有用(从WilliamRemacle提出的问题中得到了解决方案)。您可能会错过的是 将创建的 对象 添加 到 布局父对象 (下面方法底部的第二行代码): 在我中,我使用以下方法为空视图获取视图: 然后在的

  • 问题内容: 我正在研究Android项目。我有一个prefs.xml代码,像这样 而且我需要自定义首选项布局。我创造了; custom_name_setting_layout.xml 并编写一个SettingActivity.java 我的问题是;我写了setBackgroundColor方法,但是没有用。不起作用的意思是,该程序正在运行而没有错误(例如NullReferenceException

  • 我正在研究一个项目,其中上下文和会话由ThreadLocal使用ThreadPoolExecutor安全地管理(信息从线程传递到ThreadPoolExecutor内部的另一个线程)。 我们有: ThreadPoolExecutor:它实现beforeExecute和afterExecute方法行为,以确保信息从线程传递到另一个线程,并在afterExecutre方法中清除线程上下文。 Threa

  • 问题内容: 如何为角度JS使用自定义定界符?我想将语法从更改为。 有人可以教我一个完整的示例,以了解如何使用Angular来实现吗? 问题答案: 您可以用来更改用于AngularJS表达式的开始/结束符号: 然后,在您的模板中: 这是工作中的jsFiddle:http : //jsfiddle.net/Bvc62/3/ 在此处查看有关服务的文档:http : //docs.angularjs.or

  • 我正试图用在中添加自定义分隔符,但没有成功,我已经搜索了很多,并查看了下面提到的答案,但这对我没有帮助 链接1 链接2 链接3 我想在的每个项之间加上黑线,如下所示。 我在每行之间都有水平线,但不知道如何在列之间得到这些线。 chintan Soni的答案工作很好,但它只在一个场景中产生问题,当我有5个视图时,它还显示了其他3个项目的分界线,如下所示: