
现在我想要做的是,如果第一个标签不可见(在当前视图中),那么左边的箭头(<)应该是可见的,如果最后一个标签不可见(在当前视图中),那么右边的箭头应该是可见的,如果两个标签都不可见(在当前视图中),则两个箭头都应该是可见的.我试过这样做:
if (horizontablscrollvIEw.getleft == 0){ arrowRight.setVisiblity(VIEw.VISIBLE) arrowleft.setVisiblity(VIEw.INVISIBLE)}else if( horizontablscrollvIEw.getRight == 0){ arrowleft.setVisiblity(VIEw.VISIBLE) arrowRight.setVisiblity(VIEw.INVISIBLE)}else if ( horizontablscrollvIEw.getRight == 0 && horizontablscrollvIEw.getleft == 0){ arrowRight.setVisiblity(VIEw.VISIBLE) arrowleft.setVisiblity(VIEw.VISIBLE)} 但是这不起作用,我的两个标签在开始时都是不可见的:
我的xml看起来像这样..
<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:background="#ffffff" > <relativeLayout androID:ID="@+ID/RL_header" androID:layout_wIDth="fill_parent" androID:layout_height="50dip" androID:layout_marginBottom="3dip" androID:background="@drawable/gradIEnt" > <Imagebutton androID:ID="@+ID/btn_Home" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_centerVertical="true" androID:layout_marginleft="3dp" androID:background="@androID:color/transparent" androID:contentDescription="@string/description_home" androID:onClick="onHomebuttonClick" androID:src="@drawable/Title_home" /> <Imagebutton androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_alignParentRight="true" androID:layout_centerVertical="true" androID:layout_marginRight="5dip" androID:layout_margintop="5dip" androID:background="@androID:color/transparent" androID:contentDescription="@string/description_about" androID:onClick="onClickAbout" androID:src="@drawable/Title_about" /> </relativeLayout> <relativeLayout androID:ID="@+ID/FL_Tabs" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:layout_below="@ID/RL_header" > </relativeLayout> <relativeLayout androID:ID="@+ID/FL_Tabs" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:layout_below="@ID/RL_header" > <TabHost xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@androID:ID/tabhost" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:background="#ffffff" > <ImageVIEw androID:ID="@+ID/arrow_left" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:src="@drawable/i_button" androID:layout_alignParentleft="true"/> <relativeLayout androID:ID="@+ID/rl_tabs" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" > <ImageVIEw androID:ID="@+ID/arrow_left" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:src="@drawable/i_button" androID:layout_alignParentleft="true" androID:visibility="invisible"/> <ImageVIEw androID:ID="@+ID/arrow_Right" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:src="@drawable/i_button" androID:layout_alignParentRight="true" androID:visibility="invisible"/> <horizontalscrollview androID:ID="@+ID/my_scrollVIEw" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:fillVIEwport="true" androID:scrollbars="none" androID:layout_toRightOf="@+ID/arrow_left" androID:layout_toleftOf="@+ID/arrow_Right"> <TabWidget androID:ID="@androID:ID/tabs" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:tabStripEnabled="true"/> </horizontalscrollview> </relativeLayout> <FrameLayout androID:ID="@androID:ID/tabcontent" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:paddingtop="65dip" > <relativeLayout androID:ID="@+ID/myTabContent" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:layout_margintop="50dip" > <tableLayout androID:ID="@+ID/tabSubs" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:background="#ffffff" androID:shrinkColumns="*" androID:stretchColumns="*" > <tableRow androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:layout_marginBottom="20dip" androID:layout_margintop="20dip" androID:gravity="center_horizontal" > <button androID:ID="@+ID/btntestno1" androID:layout_weight="1" androID:gravity="center" androID:padding="20dip" androID:text="Test 1" androID:textcolor="#000000" /> <button androID:ID="@+ID/btntestno2" androID:layout_weight="1" androID:gravity="center" androID:padding="20dip" androID:text="Test 2" androID:textcolor="#000000" /> </tableRow> <tableRow androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:layout_marginBottom="20dip" androID:gravity="center_horizontal" > <button androID:ID="@+ID/btntestno3" androID:layout_weight="1" androID:gravity="center" androID:padding="20dip" androID:text="Test 3" androID:textcolor="#000000" /> <button androID:ID="@+ID/btntestno4" androID:layout_weight="1" androID:gravity="center" androID:padding="20dip" androID:text="Test 4" androID:textcolor="#000000" /> </tableRow> <tableRow androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:layout_marginBottom="20dip" androID:gravity="center_horizontal" > <button androID:ID="@+ID/btntestno5" androID:layout_weight="1" androID:gravity="center" androID:padding="20dip" androID:text="Test 5" androID:textcolor="#000000" /> <button androID:ID="@+ID/btntestno6" androID:layout_weight="1" androID:gravity="center" androID:padding="20dip" androID:text="Test 6" androID:textcolor="#000000" /> </tableRow> </tableLayout> </relativeLayout> </FrameLayout> </TabHost> </relativeLayout></relativeLayout>
任何帮助将不胜感激.
解决方法 一种解决方案是让你拥有HorizontalScrollVIEw类并根据滚动显示ImageVIEws(虽然我没有测试过这么多下面的代码应该工作).您的布局将如下所示://... <relativeLayout androID:ID="@+ID/rl_tabs" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" > <ImageVIEw androID:ID="@+ID/arrow_left" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:src="@drawable/i_button" androID:layout_alignParentleft="true" androID:visibility="gone"/> <ImageVIEw androID:ID="@+ID/arrow_Right" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:src="@drawable/i_button" androID:layout_alignParentRight="true" /> <com.your.package.here.SpecialScroll androID:ID="@+ID/my_scrollVIEw" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:fillVIEwport="true" androID:scrollbars="none" > <TabWidget androID:ID="@androID:ID/tabs" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:tabStripEnabled="true"/> </com.your.package.here.SpecialScroll> </relativeLayout>//...
SpecialScroll类看起来像这样:
public class SpecialScroll extends horizontalscrollview { public interface positionListener { public voID onleftArrowrequired(boolean required); public voID onRightArrowrequired(boolean required); public VIEw implementScrolledVIEw(); } private positionListener Listener; public voID setpositionListener(positionListener Listener) { this.Listener = Listener; } public SpecialScroll(Context context) { super(context); } public SpecialScroll(Context context,AttributeSet attrs,int defStyle) { super(context,attrs,defStyle); } public SpecialScroll(Context context,AttributeSet attrs) { super(context,attrs); } @OverrIDe protected voID onScrollChanged(int l,int t,int oldl,int oldt) { super.onScrollChanged(l,t,oldl,oldt); if (l == 0) { Listener.onleftArrowrequired(false); } else { Listener.onleftArrowrequired(true); } VIEw v = Listener.implementScrolledVIEw(); Rect r = new Rect(); v.getDrawingRect(r); if ((r.wIDth() - l) == getWIDth()) { Listener.onRightArrowrequired(false); } else { Listener.onRightArrowrequired(true); } }} 然后在你的活动的onCreate方法中你会做:
SpecialScroll hsv = (SpecialScroll) findVIEwByID(R.ID.my_scrollVIEw);hsv.setpositionListener(this); // I made the activity implement the SpecialScroll.positionListener interface
并且活动的positionListener接口的实现是:
@OverrIDe public voID onleftArrowrequired(boolean required) { if (required) { ((ImageVIEw) findVIEwByID(R.ID.arrow_left)) .setVisibility(VIEw.VISIBLE); } else { ((ImageVIEw) findVIEwByID(R.ID.arrow_left)) .setVisibility(VIEw.GONE); } } @OverrIDe public voID onRightArrowrequired(boolean required) { if (required) { ((ImageVIEw) findVIEwByID(R.ID.arrow_right)) .setVisibility(VIEw.VISIBLE); } else { ((ImageVIEw) findVIEwByID(R.ID.arrow_right)) .setVisibility(VIEw.GONE); } } @OverrIDe public VIEw implementScrolledVIEw() { return findVIEwByID(androID.R.ID.tabs); } 总结 以上是内存溢出为你收集整理的android – 是否可以检查TabWidget中的特定“TAB”是否在当前视图中可见?全部内容,希望文章能够帮你解决android – 是否可以检查TabWidget中的特定“TAB”是否在当前视图中可见?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)