2017-06-18 78 views
0

我想在垂直RecycleViewListView显示的TextView个清单,这很容易,但TextView使用的整个宽度,我希望在TextView结束之前使用的整个宽度,行布局ListView的下一项开始于剩余宽度。例如:RecyclerView或ListView垂直与WRAP_CONTENT

item1 textview blablalbablalba
blalblabla。 item2 textviewvav
blablablalblabllabllalb。 item3
fsafsfsfsfsfsffsfs。

我该怎么做?

我应该做一个自定义的TextView或自定义RecyclerView/ListView或什么?

我已经去row.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/row_scripture_textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="10sp" /> 

</LinearLayout> 

而且RecyclerView

<android.support.v7.widget.RecyclerView 
    android:id="@+id/rv_scripture" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

的Java

RecyclerView rvScripture = (RecyclerView) rootView.findViewById(R.id.rv_scripture); 
rvScripture.setAdapter(new ScriptureAdapter(getActivity(), myArrayObjs)); 
rvScripture.setLayoutManager(new LinearLayoutManager(getActivity())); 

这是我的适配器。

public class ScriptureAdapter extends 
RecyclerView.Adapter<ScriptureAdapter.MyViewHolder> { 

    private LayoutInflater inflater; 
    private List<String> data = Collections.emptyList(); 

    public ScriptureAdapter(Context context, List<String> data) { 
     inflater = LayoutInflater.from(context); 
     this.data = data; 
    } 

    @Override 
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = inflater.inflate(R.layout.row_scripture, parent, false); 
     MyViewHolder viewHolder = new MyViewHolder(view); 
     return viewHolder; 
    } 

    @Override 
    public void onBindViewHolder(MyViewHolder holder, int position) { 
     String current = data.get(position); 
     holder.textView.setText(current); 
    } 

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

    class MyViewHolder extends RecyclerView.ViewHolder { 

     TextView textView; 

     public MyViewHolder(View itemView) { 
      super(itemView); 
      textView = (TextView) itemView.findViewById(R.id.row_scripture_textView); 
     } 
    } 
} 
+0

你打算如何使用这个清单?它有更多的功能还是仅仅用于演出? –

+0

@MohamedYassin @MohamedYassin只是为了显示,我想要选择查看一个项目下另一个(正常行为),正如我在提示 –

回答

0

我认为这可以通过在一个巨大的TextView中使用Spannable类来实现。

SpannableStringBuilder builder = new SpannableStringBuilder();

,并把所有加载的数据转换为字符串列表,然后根据他们的迭代,

你,直到你到达数据的末尾添加以前的数据到下一个。

让我知道它是怎么回事!

+0

老兄,我不知道该如何谢谢你!我爱你!我不知道Spannable和那些东西,我正在研究有关Spans并解决未来的问题。其实你不解决我的问题,但你指导我:) –

0

如果数据是作秀的话,我会建议最简单的解决办法是将数据合并到一个变量,并输出到一个滚动视图中一个TextView。

+0

解释我认为,但这是为什么林使用RecyclerView/ListView ..我需要点击物品......我的意思是,每个物品都可以弹出 –