如何编辑RecyclerView的FloatingActionButton(可见性等)

时间:2018-10-31 22:59:11

标签: android android-recyclerview floating-action-button

我是一名新程序员。我需要一些有关编辑在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);
    }
}

非常感谢您的帮助!

2 个答案:

答案 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;