2017-06-18 71 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 ..我需要點擊物品......我的意思是,每個物品都可以彈出 –