我有一个编辑文本,其宽度设置为换行内容。我还有一个回收器 View ,其宽度设置为换行内容。我想让回收器 View 宽度等于以编程方式编辑文本宽度。我使用了下面的代码,但它不起作用。从 getMeasuredWidth() 返回的宽度不等于 edittext 宽度。
editText= findViewById(R.id.edit_text);
editText.measure(0, 0);
testRecyclerView= findViewById(R.id.employee_recycler_view);
testRecyclerView.setLayoutManager(new LinearLayoutManager(context));
ViewGroup.LayoutParams layoutParams = testRecyclerView.getLayoutParams();
layoutParams.width = editText.getMeasuredWidth();
testRecyclerView.setLayoutParams(layoutParams);
最佳答案
您应该以 <View>.requestLayout()
结尾以新大小刷新(当前 employeeRecyclerView
)。
此外,onCreate()
中的 View 未正确测量。为了得到editText
您可以使用的宽度 post
, postDelayed
, doOnPreDraw
( onPreDrawListener
) 或 viewTreeObserver
.
关于java - 如何动态获取EditText宽度并将其设置为recyclerView宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70347954/