2018-06-21 遇到的一点小问题
之前有个界面做类似表格的小功能,GitHub随便找了个表格控件,但使用了发现坑特多,改个小细节要改的东西不少,高度边距调整也很麻烦。
就自己用LinearLayout
、RecyclerView
、HorizontalScrollView
、TextView
、、、弄了个简单的。
没什么难点,就是有几个需要注意的地方。第一个就是左右两个RecyclerView联动。有一个滑动时,另一个也滑动相应距离。
leftRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (RecyclerView.SCROLL_STATE_IDLE != recyclerView.getScrollState()) {
rightRecycler.scrollBy(dx, dy);
}
}
});
rightRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (RecyclerView.SCROLL_STATE_IDLE != recyclerView.getScrollState()) {
leftRecycler.scrollBy(dx, dy);
}
}
});
然后就是右边表格的宽度。为了省事,使用的HorizontalScrollView获得左右滑动的能力。然后上下分别使用
RecyclerView展示数据。这样很省事,不过需要根据TextView数量给RecyclerView设置固定宽度。因为TextView宽度是设置的固定的,所以比较省事。记录一下,之前忘记设置了。
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) topRecycler.getLayoutParams();
params.width = TextView宽度*数量;
topRecycler.setLayoutParams(params);