Android:UI控件scrollView、TabHost
2013-05-25 16:58
351 查看
UI控件scrollView:
容器内最外层只能有一个布局。
UI控件TabHost:
scrollView相关:
监听scrollView滚动到底部:
代码如下:
2.使scrollview内的子控件充满整个屏幕,需要设置android:fillViewport="true"属性。
3.scrollTo() 是直接指定滚动条的位置, 但是由于这个动作不是单纯关于 ScrollView 而已, 还要根据 ScrollView 里面包含的View 的实际信息. 所以这动作必须在页面加载完成以后才能执行.
4.网上说的方法乱七八糟,能用的就是自己算高度,其实sdk-9中,ScrollView已经加入了一个方法,能监听到是否已经不能滚动,稍加处理,就可以监听是否滑到底部了。
容器内最外层只能有一个布局。
UI控件TabHost:
public class MainActivity extends TabActivity//继承TabActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TabHost tabHost = getTabHost(); /** * 自定义创建TabHost方法 */ //TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost); //tabHost.setup(); tabHost.addTab(tabHost.newTabSpec("").setIndicator("title1", getResources().getDrawable(R.drawable.ic_launcher))//设置tab背景图 .setContent(new Intent(this, Second.class))); tabHost.addTab(tabHost.newTabSpec("").setIndicator("title1") .setContent(new Intent(this, Second.class))); tabHost.addTab(tabHost.newTabSpec("").setIndicator("title1") .setContent(new Intent(this, Second.class) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));//Activity的启动模式 } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }
scrollView相关:
监听scrollView滚动到底部:
代码如下:
/** * ******************增加滚动监听接口***************************** */ private OnScrollListener onScrollListener; /** * 设置滚动接口 * * @param onScrollListener */ public void setOnScrollListener(OnScrollListener onScrollListener) { this.onScrollListener = onScrollListener; } @Override protected void onScrollChanged(int x, int y, int oldx, int oldy) { super.onScrollChanged(x, y, oldx, oldy); if (onScrollListener != null) { onScrollListener.onScroll(x, y, oldx, oldy); //是否滚动到底部 if(getScrollY() + getHeight() >= computeVerticalScrollRange() ) { onScrollListener.onScrollBottom(x, y, oldx, oldy); } } } /** * 滚动的回调接口 */ public interface OnScrollListener { /** * 回调方法, 返回ScrollView滑动的各方向距离 */ public void onScroll(int x, int y, int oldx, int oldy); public void onScrollBottom(int x, int y, int oldx, int oldy); }
2.使scrollview内的子控件充满整个屏幕,需要设置android:fillViewport="true"属性。
<ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" > <LinearLayout android:layout_width="match_parent" android:layout_height="fill_parent" android:orientation="vertical" > <!-- 滚动框内布局 --> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >
3.scrollTo() 是直接指定滚动条的位置, 但是由于这个动作不是单纯关于 ScrollView 而已, 还要根据 ScrollView 里面包含的View 的实际信息. 所以这动作必须在页面加载完成以后才能执行.
4.网上说的方法乱七八糟,能用的就是自己算高度,其实sdk-9中,ScrollView已经加入了一个方法,能监听到是否已经不能滚动,稍加处理,就可以监听是否滑到底部了。
import android.content.Context; import android.util.AttributeSet; import android.widget.ScrollView; public class BottomScrollView extends ScrollView { private OnScrollToBottomListener onScrollToBottom; public BottomScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public BottomScrollView(Context context) { super(context); } @Override protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) { super.onOverScrolled(scrollX, scrollY, clampedX, clampedY); if(scrollY != 0 && null != onScrollToBottom){ onScrollToBottom.onScrollBottomListener(clampedY); } } public void setOnScrollToBottomLintener(OnScrollToBottomListener listener){ onScrollToBottom = listener; } public interface OnScrollToBottomListener{ public void onScrollBottomListener(boolean isBottom); } }
相关文章推荐
- Android-高级UI控件_TabHost标签组件
- 【Android 开发】:UI控件之 ScrollView垂直滚动控件 和 HorizontalScrollView水平滚动控件的使用
- Android学习-常见的UI控件 AutoCompleteTextView和MultiAutoCompleteTextView
- Android UI---控件Shape效果
- Android UI 控件详解-TextView(文本视图)
- Android UI布局与控件(二)
- Android UI系列-----ScrollView和HorizontalScrollView
- UI控件之 ScrollView垂直滚动控件 和 HorizontalScrollView水平滚动控件的使用
- Android UI控件详解-Gallery(画廊)
- Android之解决scrollview总是优先滑动,导致在scrollview内的控件不滑动问题
- (转)[Android_UI控件]Activity、Window、View之间的关系
- AndroidUI控件-AlertDialog弹窗控件
- Android2.1--UI基本控件<3>--初学者对Intent的理解
- Android之旅八 ListView、TabHost、Spinner控件详细介绍
- Android学习之 UI--基础控件
- android禁止ScrollView内的控件改变之后自动滚动
- Android初级控件TabHost
- android实现UI控件自动注入到Activity
- Android进阶#(2/12)创造丰富多彩的UI——View与动画_重要的View控件
- Android UI控件之Gallery(拖动效果) --拖动式图片浏览