I recyclerView in meiner Anwendung verwendet habe, und will eine Scroll bis zu Top-Taste in hinzufügen, dass ich auf die Schaltfläche in hinzugefügt, kann aber nicht in der Lage sein, Um meine RecyclerView auf der Oberseite zu scrollen, wenn ich auf die Schaltfläche klicke, habe ich auch umgekehrt mein RecyclerView, so dass der neue Beitrag, den ich hinzufügen in es kommt oben nicht auf der Unterseite. Bitte hilf mir, vielen Dank im Voraus. Ich habe auch getPosition
Methode verwendet, aber das hat nicht für mich funktioniert.Zurück nach oben von recyclerView in Android mit einer Taste
Ich bin mit Android Studio
Scroll-Action-Klasse-Datei Code:
public class HomePage extends AppCompatActivity {
private FirebaseAuth mAuth;
private RecyclerViewPager mrecyclerView;
private DatabaseReference mDatabaseReference;
private Button rollUp;
public static int recyclerPos = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_page);
mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("post");
mrecyclerView = (RecyclerViewPager) findViewById(R.id.list);
final LinearLayoutManager layout = new LinearLayoutManager(HomePage.this, LinearLayoutManager.VERTICAL, false);
layout.setReverseLayout(true);//<---- to get new posted data on top of list
layout.setStackFromEnd(true);//<-----
mrecyclerView.setLayoutManager(layout);
rollUp = (Button) findViewById(R.id.roll_up);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mAuth = FirebaseAuth.getInstance();
this.mrecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
int mLastFirstVisibleItem = 0;
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
final int currentFirstVisibleItem = layout.findFirstVisibleItemPosition();
if (currentFirstVisibleItem < this.mLastFirstVisibleItem) {
HomePage.this.getSupportActionBar().hide();
} else if (currentFirstVisibleItem > this.mLastFirstVisibleItem) {
HomePage.this.getSupportActionBar().show();
}
this.mLastFirstVisibleItem = currentFirstVisibleItem;
}
});
}
private void sentToStart() {
Intent intent = new Intent(HomePage.this, LoginPage.class);
startActivity(intent);
finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu_home_page, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
int id = item.getItemId();
if (id == R.id.action_settings){
Intent intentSettings = new Intent(HomePage.this,settings.class);
startActivity(intentSettings);
LinearLayoutManager layoutManager = ((LinearLayoutManager) mrecyclerView.getLayoutManager());
recyclerPos = layoutManager.findFirstVisibleItemPosition();
}
if (id == R.id.roll_up){
LinearLayoutManager layoutManagerroll = ((LinearLayoutManager) mrecyclerView.getLayoutManager());
recyclerPos = layoutManagerroll.findFirstVisibleItemPosition();
layoutManagerroll.scrollToPositionWithOffset(0,0);
}
return super.onOptionsItemSelected(item);
}
Diese Frage wurde bereits oft gefragt. –
@ H.Brooks können Sie einige verweisen, ich habe viele versucht, aber sie haben nicht funktioniert für mich, und ich war nicht in der Lage, die richtige Antwort zu erhalten –
https://StackOverflow.com/q/32159724/5550161 –