当前位置: 首页 > 知识库问答 >
问题:

Android EditText match_父对象在回收器视图中不工作

狄宇
2023-03-14

我有一个带有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="match_parent"),但在运行时,它会根据提示的宽度进行包装。有人能帮我解决这个问题吗。


适配器:

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个答案

敖和韵
2023-03-14

试试这个:

<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"/>
 类似资料:
  • 只是检查主活动. xml我正在做的是在按钮下方显示回收器视图并编辑文本...编辑文本的值被制成卡片,但问题是按钮不工作我不知道为什么请帮助 我是新的协调员的意见,所以请原谅我,如果我做一些新手的错误 AdapterEx.java 初始化回收器视图 主活动. xml 卡片视图. xml

  • 我刚开始在firebase工作。我设法上传了文本和图像,但是,我无法检索要显示在回收器视图中的图像,只能检索文本。我用的是毕加索依赖。我已经包括了我的主要活动。java类,该类负责显示从问题“我的适配器”中的firebase检索的回收器视图项。java类和模型类。我相信,在我将图像URI上载到firebase存储时,我可能犯了没有存储图像URI的错误,因此适配器无法检索图像位置。我想这可能是因为我

  • 我试图为我的应用程序实现一个搜索过滤器,但我不知道如何去做。我在这里看到一个问题,但这只会让我更加困惑。这是我目前所做的:我在我的主活动中这样调用片段类 主类活动 RecycleView位于JobsFragment: 完整的StackTrace

  • 主要活动: 适配器:

  • 我在里面使用了。我还将设置为false for 支持较低的API

  • 在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个: