最近发现
浏览器qq猎豹等,
很多都是,向上滑动显示搜索菜单,向下浏览网页隐藏搜索菜单,而且非常平滑的效果,用Visistty.setVisisty(View....
)一直
达到我想要的效果。用改变view的位置,平移到屏幕显示外面。并且带有动画效果来实现。貌似会更好点。直接看代码。一部分代码仿另一个开源项目基础上修改而来的。
主要原理是检查判定是否在滑动到屏幕的顶部或者底部,根据其顶部的话就,让我们的内容view 偏移顶部高度为我们topview高度,否则view偏移量为0。并为其设置平移动画效果。
主要原理是检查判定是否在滑动到屏幕的顶部或者底部,根据其顶部的话就,让我们的内容view 偏移顶部高度为我们topview高度,否则view偏移量为0。并为其设置平移动画效果。
public
class ScrollViewActivity
extends Activity {
private PoppyViewHelper mPoppyViewHelper;
private LayoutInflater layoutInflater;
private NotifyingScrollView scrollView;
private View poppyview;
@
Override
protected
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scrollview);
layoutInflater
=LayoutInflater.from(
this);
scrollView
=(NotifyingScrollView)findViewById(R.id.scrollView);
poppyview
=layoutInflater.inflate(R.layout.poppyview,
null);
mPoppyViewHelper
=
new PoppyViewHelper(
this, PoppyViewPosition.TOP);
ViewGroup poppyView
= mPoppyViewHelper.createPoppyViewOnScrollView(scrollView, poppyview);
poppyView.setOnClickListener(
new View.OnClickListener() {
@
Override
public
void onClick(View v) {
Toast.makeText(ScrollViewActivity.
this,
"Click me!", Toast.LENGTH_SHORT).show();
}
});
}
}
public
class PoppyViewHelper {
public
enum PoppyViewPosition {
TOP, BOTTOM
};
private
static
final
int SCROLL_TO_TOP
=
-
1;
private
static
final
int SCROLL_TO_BOTTOM
=
1;
private
static
final
int SCROLL_DIRECTION_CHANGE_THRESHOLD
=
5;