可浮动的导航菜单

可浮动的导航菜单(android)

在某个页面中,有一行(或者一列)作为导航的菜单,而整页的内容,又因为过长而不得不加入滚动试图,

若把顶部的图片和导航固定,那么下部可动范围就太小了,所以更多的时候我们是需要这样的处理,当开始拖动界面以查看底部更多内容的时候,让界面中顶部的图片和中部的导航一起动,但是当导航栏到达顶部的时候,便固定在那里;同时,当拖动界面往下,底部内容拉去完以后,应该是导航栏和顶部图片一起往下,拖动到最后恢复为初始的样子。

Solution

整个页面是放入一个ScrollView之中,再加入一个默认是View.GONE的FrameLayout中,布局一个和在ScrollView中的导航栏一样的导航栏;监听ScrollView的滑动事件,当ScrollView的导航栏view的getLocationInWindow()获得的坐标y <= ScrollView.y,则处理把FrameLayout的导航栏显示出来,同理,返回时逆向处理。

Android:实现一种浮动选择菜单的效果

图片

 

问题:

在一个拥有Scrollbar的组件中嵌入另一个拥有Scrollbar的组件,会混淆滑动事件,导致只显示一到两行数据。那么就换一种思路,首先让子控件的内容全部显示出来,禁用了它的滚动。如果超过了父控件的范围则显示父控件的scrollbar滚动显示内容:

public class MyGridView extends GridView
{
public MyGridView(android.content.Context context,
android.util.AttributeSet attrs)
{
super(context, attrs);
}

/**
* 设置不滚动
*/
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) //onMeasure函数决定了组件显示的高度与宽度;
{
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST); //第一个参数决定布局空间的大小,第二个参数是布局模式,MeasureSpec.AT_MOST的意思就是子控件需要多大的控件就扩展到多大的空间
super.onMeasure(widthMeasureSpec, expandSpec); }

}

在listview.setAdapter()之后调用Utility.setListViewHeightBasedOnChilren(listview)就Okay 了

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

生活在西班牙

自己动手丰衣足食

BlueAsteroid

Just another WordPress.com site

Jing's Blog

Just another WordPress.com site

Start from here......

我的心情魔方

天才遠私廚

希望能做一個分享各種資訊的好地方

语义噪声

西瓜大丸子汤的博客

笑对人生,傲立寰宇

Just another WordPress.com site

Where On Earth Is Waldo?

A Project By Melanie Coles

the Serious Computer Vision Blog

A blog about computer vision and serious stuff

Cauthy's Blog

paper review...

Cornell Computer Vision Seminar Blog

Blog for CS 7670 - Special Topics in Computer Vision

datarazzi

Life through nerd-colored glasses

Luciana Haill

Brainwaves Augmenting Consciousness

槑烎

1,2,∞

Dr Paul Tennent

and the university of nottingham

turn off the lights, please

A bunch of random, thinned and stateless thoughts around the Web

%d bloggers like this: