在ListView中一个接一个地显示项目

时间:2017-03-18 05:56:00

标签: android listview

我有一个ListView

<ListView
        android:layout_width="match_parent"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:layout_height="match_parent"
        android:id="@+id/listView1"/>

我在这里使用自定义适配器添加一些项目。

CustomAdapter adapter = new CustomAdapter(this, myArrayList);
ListView listView = (ListView) findViewById(R.id. listView1);
listView.setAdapter(adapter);

在我的自定义适配器中,我还使用了自定义布局,其中只有一个textVeiw:

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


<TextView
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingBottom="8dp"
    android:paddingTop="8dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/custom_textView"/>
</LinearLayout>

一切都很好。好好工作。 textView逐行显示文本。 例如:

<TextView>
<TextView>
<TextView>

依旧......

但是,我不想逐行显示文字。我想一个接一个地显示文本。

像:

<TextView><TextView><TextView><TextView><TextView><TextView>

但是当它到达父级或设备屏幕的末尾时,它会采用新的一行。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为你想要水平列表视图而不是垂直列表视图。

以下步骤:

在您的布局(XML)“your_activity.xml”文件中实施Recyclerview。

<android.support.v7.widget.RecyclerView
    android:id="@+id/horizontalRecyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorWhite">
</android.support.v7.widget.RecyclerView>  

实施列表适配器项目布局(XML)“item_list.xml”文件。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:id="@+id/lnrItem"
android:layout_width="match_parent"
android:layout_height="wrap_content">

        <TextView
            android:id="@+id/txtMessage"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Name"
            android:textColor="@color/colorWhite"
            android:textSize="14sp" />

</LinearLayout>

实施客户列表适配器“CustomListAdapter.java”

公共类CustomListAdapter扩展了RecyclerView.Adapter&lt; CustomListAdapter.ViewHolder&GT; {私人活动背景; private ArrayList <String> list = new ArrayList<String>();

public CustomListAdapter(Activity context, ArrayList<String> list) {
this.context = context;
this.list = list;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item_list, parent, false);

return new ViewHolder(view);
}

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
try {

holder.getTxtMessage().setText(list[position]);

} catch (Exception e) {
    e.printStackTrace();
}
}

@Override
public int getItemCount() {
return list.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {

private TextView txtMessage;

public ViewHolder(View view) {
    super(view);
    txtMessage = (TextView) view.findViewById(R.id.txtMessage);
}

public TextView getTxtMessage() {
    return txtMessage;
}

}

在OnCreate方法中的活动“YourActivity.java”中设置适配器。

@Override public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);的setContentView(R.layout.your_activity);

RecyclerView horizo​​ntalRecyclerView =(RecyclerView)findViewById(R.id.horizo​​ntalRecyclerView);

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false); horizo​​ntalRecyclerView.setLayoutManager(linearLayoutManager);

 ArrayList<String> list = new ArrayList<>();
    list.add("First TextView ");
    list.add("Second TextView ");
    list.add("Third TextView ");
    list.add("Four TextView ");
    list.add("Fifth TextView ");

private CustomListAdapter adapter = new CustomListAdapter(YourActivity.this,list); horizo​​ntalRecyclerView.setAdapter(topMemberAdapter);

}