我是一名新程序员。我需要一些有关编辑在ListActivity中创建的FloatingActionButton的帮助
这是我的Activity,在ConstraintLayout中包含一个FloatingActionButton和RecyclerView:
public class ListActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
FloatingActionButton fab = ( FloatingActionButton ) findViewById(R.id.floatingActionButton);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(AlarmListActivity.this, FloatingButtonActivity.class));
}
});
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.RView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
}
@Override
protected void onResume() {
super.onResume();
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.RView);
RAdapter radapter = new RAdapter(this);
recyclerView.setAdapter(radapter);
}
}
非常感谢您的帮助!
答案 0 :(得分:0)
您可以使用以下代码通过片段适配器控制“活动”中的视图:
1-将此行添加到您的活动中
public FloatingActionButton fab;
2-更改此行
FloatingActionButton fab = ( FloatingActionButton ) findViewById(R.id.floatingActionButton);
到
fab = ( FloatingActionButton ) findViewById(R.id.floatingActionButton);
3-在您的适配器中使用此:
Activity activity;
public RAdapter(Activity c) {
this.activity=c;
}
4-要更改视图的可见性,请使用此行:
((AlarmListActivity)activity).fab.setVisibility(Visible);
>
>
第二种方法是设置fab static
并从适配器
AlarmListActivity.fab.setVisibility();
但这不是一个好方法。
答案 1 :(得分:0)
鉴于您明确要求将FAB隐藏在回收站适配器中,所以我不知道这是否对您有帮助,但是您是否像这样向回收站视图中添加了ScrollSListener->
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener()
添加ScrollListener时,它将询问要加载哪些方法:
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
和
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
第一个(onScrollStateChanged)将帮助您了解回收商何时停止抄录。当newState
的值为0
另一种方法(OnScrolled)将使您知道使用变量dy
滚动回收站的方向或方向。
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if(newState == 0){
fab.setVisibility(View.VISIBLE);
}
}
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if(dy > 0){
fab.setVisibility(View.INVISIBLE);
} else if(dy < 0){
fab.setVisibility(View.INVISIBLE);
}
}
});
我必须告诉你,Android Studio会警告你,但是它确实起作用。
fab变量是:
私有FloatingActionButton fab;