我有一个NestedScrollView包含一个LinearLayout和一个RecyclerView(都在RelativeLayout内).
将数据加载到RecyclerView后,我需要以编程方式更改它的高度,如下所示:
RelativeLayout.LayoutParams lay_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 50 + ((int) (baskets.length * getResources().getDimension(R.dimen.list_height_small)))); lay_params.addRule(RelativeLayout.BELOW, lay_total.getId()); recyclerView.setLayoutParams(lay_params); recyclerView.setAdapter(new ListBasketAmountAdapter(baskets));
问题是当数据加载完NestedScrollView时,滚动会自动滚动到RecyclerView的顶部,将LinearLayout隐藏在它上面.有任何想法吗?
谢谢.
几天后,我找到了问题的解决方案.你只需要descendantFocusability
在第一个布局中添加ScrollView
如下:
kevings14给出的解决方案有效,但在我的情况下没有用.当我补充说,我有一RecyclerView
两个EditText
以下NestedScrollView
android:descendantFocusability="blocksDescendants"
在滚动视图下的主布局中.我无法集中注意力EditText
.
然后我想出了这个对我有用的解决方案.