2017-03-18 44 views
0

我有一个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

只需尝试RecyclerView。它是更好的然后listview ...你可以以垂直或水平或网格显示listitems。 –

+0

我认为你正在寻找像FlowLayout这样的东西。看到这个:http://stackoverflow.com/questions/4474237/how-can-i-do-something-like-a-flowlayout-in-android 此外, 1.您可以摆脱LinearLayout。如果您真的需要这种布局,那么将layout_width更改为“wrap_content”。 2.将TextView的layout_width更改为“wrap_content”,否则将始终采用全宽。 –

+0

@RafiKamal的计算器问题链接是不开放.. –

回答

0

我想你想水平列表视图,而不是垂直列表视图。

接着工序是否有:

实现(XML)Recyclerview在布局“your_activity.xml”文件。

<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> 

实现List适配器项目布局(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> 

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

公共类CustomListAdapter延伸RecyclerView.Adapter < CustomListAdapter.ViewHolder> {私人活动上下文; 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; 
} 

}

在活动集适配器“YourActivity.java”在onCreate方法。

@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 "); 

私人CustomListAdapter适配器=新CustomListAdapter(YourActivity.this,清单); horizo​​ntalRecyclerView.setAdapter(topMemberAdapter);

}