在Fragment中修改Activity中的控件
程序员文章站
2022-05-14 07:57:30
...
在一些交互体验上做的比较的app上都有这么一个小功能,就是当你手指点击到标题栏的时候,会把你当前浏览的位置自动的滚动到该页面的起始的位置。
大概就是下面这个样子:
额……这里当然不是来讲用户体验的…哈哈,能分清那个是真正的知乎日报嘛?
上面是这个页面的布局,最外层是Activity,里面的内容部分使用Fragment做展示。
下面要讲的是如何在Fragment中调用Activity里的控件,这里我们需要完成的业务就是点击Activity中的ToolBar,然后将ListView滚动到起始位置,简单吧?下面直接上代码:
//在Fragment中使用Activity中控件的方式
AppCompatActivity activity = (AppCompatActivity) getActivity();
Toolbar mToolBar = (Toolbar) activity.findViewById(R.id.toolbar);
mToolBar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mHeaderListView.smoothScrollToPosition(0);
}
});
步骤就是,在当前的Fragment中调用getActivity方法获取依附着的那个Activity,然后再用获取到的Activity去findViewById拿到你需要的控件对其操作就行了。