Android EditText match_parent无法在回收站视图中运行

时间:2015-11-28 09:26:21

标签: android android-edittext android-recyclerview

我的活动内有 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"/>

1 个答案:

答案 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"/>