我的活动内有 viewpager ,其中一个片段我正在使用 Recycler视图将查看项目设为编辑文字。这是我的代码。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFF00"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="@dimen/five">
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="top"
android:padding="@dimen/three" />
<EditText
android:id="@+id/etEditorListItem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:hint="@string/et_add_item"
android:padding="@dimen/three"/>
</LinearLayout>
这里我给了edittext宽度为match_parent (android:layout_width =&#34; match_parent&#34;),但在运行时根据提示的宽度进行包装。 有人可以帮我这个。
适配器:
public class ListAdapter extends RecyclerView.Adapter<NoteListAdapter.ListHolder> {
private List<String> mList = new ArrayList<String>();
private Context mContext;
public ListAdapter(List<String> list){
this.mList = list;
}
@Override
public ListHolder onCreateViewHolder(ViewGroup parent, int viewType) {
this.mContext = parent.getContext();
return new ListHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item,null));
}
@Override
public void onBindViewHolder(final ListHolder holder, final int position) {
holder.etEditorListItem.setText(mList.get(position));
}
@Override
public int getItemCount() {
return mList != null ? mList.size() : 0;
}
public class ListHolder extends RecyclerView.ViewHolder{
public CheckBox checkBox;
public EditText etEditorListItem;
public ListHolder(View itemView) {
super(itemView);
checkBox = (CheckBox)itemView.findViewById(R.id.checkbox);
etEditorListItem = (EditText)itemView.findViewById(R.id.etEditorListItem);
}
}
}
碎片:
RecyclerView rvList = (RecyclerView) view.findViewById(R.id.rvList);
rvList.setHasFixedSize(true);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
rvList.setLayoutManager(layoutManager);
mListAdapter = new ListAdapter(listItems);
rvList.setAdapter(mListAdapter);
片段布局:
<android.support.v7.widget.RecyclerView
android:id="@+id/rvList"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
答案 0 :(得分:0)
试试这个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:background="#FFFF00"
android:weightSum="1"
android:padding="5dp">
<CheckBox
android:id="@+id/checkbox"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="0.1"
android:padding="3dp"/>
<EditText
android:id="@+id/etEditorListItem"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@null"
android:layout_gravity="center_horizontal"
android:layout_weight="0.9"
android:hint="Hello"
android:padding="3dp"/>