这是我想在方向更改和活动恢复时保留 recyclerview 滚动位置的代码。问题出在我的日志中,我总是得到 -1。我哪里错了?
void resetViews() {
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
RecyclerView.LayoutManager lm = recyclerView.getLayoutManager();
if (lm != null && lm instanceof LinearLayoutManager) {
currPosition = ((LinearLayoutManager)lm).findFirstVisibleItemPosition();
Log.i("saz","curr pos : " + currPosition);
}
int count = lm.getChildCount();
if (currPosition != RecyclerView.NO_POSITION && currPosition < count){
lm.scrollToPosition(currPosition);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Firebase存储下载图像.我写了以下代码
MainActivity.java
public class MainActivity extends AppCompatActivity {
ArrayList<Car> carListSuper;
RecyclerView rvCarList;
ProgressBar progressbar;
private CarListAdapter carListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
carListSuper = new ArrayList<>();
Firebase myFirebaseRef = new Firebase("https://carbar-7dae7.firebaseio.com/");
rvCarList = (RecyclerView) findViewById(R.id.rvCarList);
rvCarList.setItemAnimator(new FeedItemAnimator());
progressbar = (ProgressBar) findViewById(R.id.progressCarLoad);
carListAdapter = new CarListAdapter(carListSuper,MainActivity.this);
RecyclerView.LayoutManager linearLayoutManager = new LinearLayoutManager(this);
rvCarList.setLayoutManager(linearLayoutManager);
rvCarList.setAdapter(carListAdapter);
myFirebaseRef.child("carList").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
Log.i("saz",snapshot.getValue().toString());
progressbar.setVisibility(View.GONE);
carListSuper.clear();
//String jsonString = snapshot.getValue().toString();
try {
for (int i=0; i<snapshot.getChildrenCount();i++) {
//Car carList …Run Code Online (Sandbox Code Playgroud)