带有 Horizo​​ntalScrollView-android 的水平菜单

发布于 2024-10-17 14:04:09 字数 4047 浏览 5 评论 0原文

这是我必须实现的一个水平菜单。这是 菜单应使用左右箭头平滑地水平滚动,就像福克斯新闻应用程序 https:// market.android.com/details?id=com.foxnews.android 以及第一个应用程序屏幕截图。

通过使用谷歌和这个论坛上的其他帖子,我使用horizo​​ntalScrollView来实现它,但不知道如何用箭头设置左右透明图像以指示根据滚动向左或向右有更多元素。

无论我编码什么,都实现了滚动运动,但它缓慢且难以用箭头显示左右图像。

请告诉我您对此有什么解决方案吗?

我正在使用这个布局

<HorizontalScrollView
    android:id="@+id/hor_svID"
    android:layout_width="wrap_content"
    android:layout_height="35dip"
    android:scrollbars="none"
    android:fillViewport="false"
    android:focusable="false"
    android:background="@drawable/submenu_bg">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:focusable="false"
        android:background="#FFFFFF"
        android:gravity="center">
        <TextView android:id="@+id/TechnologyTxtVId" 
                android:text="TECHNOLOGY"   
                android:textColor="#342D7E"
                android:textSize="12sp"
                android:textStyle="bold"
                android:gravity="center"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>
        <TextView android:id="@+id/SportsTxtVId" 
                android:text="SPORTS" 
                android:textColor="#342D7E" 
                android:textStyle="bold"
                android:textSize="12sp"
                android:gravity="center"
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content" 
                android:paddingLeft="15dip"></TextView> 
        <TextView android:id="@+id/EntntTxtVId" 
                android:text="ENTERTAINMENT"    
                android:textStyle="bold"
                android:paddingLeft="15dip"
                android:textSize="12sp"
                android:gravity="center"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>
        <TextView android:id="@+id/LocalTxtVId" 
                android:text="LOCAL"    
                android:textStyle="bold"
                android:paddingLeft="15dip"
                android:textSize="12sp"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>        
        <TextView android:id="@+id/WorldTxtVId" 
                android:text="WORLD"    
                android:textStyle="bold"
                android:textSize="12sp"
                android:paddingLeft="15dip"
                android:gravity="center"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>    
        <TextView android:id="@+id/FeaturesTxtVId" 
                android:text="FEATURES" 
                android:textStyle="bold"
                android:textSize="12sp"
                android:paddingLeft="15dip"
                android:gravity="center"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>        
        <TextView android:id="@+id/RecentTxtVId" 
                android:text="RECENT"   
                android:textStyle="bold"
                android:textSize="12sp"
                android:paddingLeft="15dip"
                android:gravity="center"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>                                
    </LinearLayout>                                     
</HorizontalScrollView>

This is one horizontal menu I have to implement .And this
menu should scroll horizontally smoothly with left and right arrow like this Fox News application https://market.android.com/details?id=com.foxnews.android with the first app screen shot.

By using google and other post on this forum I used horizontalScrollView to achieve it,but don't know how to set left and right transparent images with arrow to indicate that there are more element to left or right depending on scroll.

Whatever I coded ,achieved scrolling movement but its slow and struggling to show left and right images with arrow.

Kindly tell me if you have any solution on this.

This layout I am using

<HorizontalScrollView
    android:id="@+id/hor_svID"
    android:layout_width="wrap_content"
    android:layout_height="35dip"
    android:scrollbars="none"
    android:fillViewport="false"
    android:focusable="false"
    android:background="@drawable/submenu_bg">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:focusable="false"
        android:background="#FFFFFF"
        android:gravity="center">
        <TextView android:id="@+id/TechnologyTxtVId" 
                android:text="TECHNOLOGY"   
                android:textColor="#342D7E"
                android:textSize="12sp"
                android:textStyle="bold"
                android:gravity="center"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>
        <TextView android:id="@+id/SportsTxtVId" 
                android:text="SPORTS" 
                android:textColor="#342D7E" 
                android:textStyle="bold"
                android:textSize="12sp"
                android:gravity="center"
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content" 
                android:paddingLeft="15dip"></TextView> 
        <TextView android:id="@+id/EntntTxtVId" 
                android:text="ENTERTAINMENT"    
                android:textStyle="bold"
                android:paddingLeft="15dip"
                android:textSize="12sp"
                android:gravity="center"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>
        <TextView android:id="@+id/LocalTxtVId" 
                android:text="LOCAL"    
                android:textStyle="bold"
                android:paddingLeft="15dip"
                android:textSize="12sp"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>        
        <TextView android:id="@+id/WorldTxtVId" 
                android:text="WORLD"    
                android:textStyle="bold"
                android:textSize="12sp"
                android:paddingLeft="15dip"
                android:gravity="center"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>    
        <TextView android:id="@+id/FeaturesTxtVId" 
                android:text="FEATURES" 
                android:textStyle="bold"
                android:textSize="12sp"
                android:paddingLeft="15dip"
                android:gravity="center"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>        
        <TextView android:id="@+id/RecentTxtVId" 
                android:text="RECENT"   
                android:textStyle="bold"
                android:textSize="12sp"
                android:paddingLeft="15dip"
                android:gravity="center"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>                                
    </LinearLayout>                                     
</HorizontalScrollView>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梅窗月明清似水 2024-10-24 14:04:09

我不知道您使用它的确切上下文,但您可能应该将 LinearLayout 更改为相对的(这是对 textView 的简单更改,添加以下内容:

  • 对于第一个文本:

    android:layout_alignParentLeft="true"

  • 对于下一个文本

    android:layout_toRightOf="@id/previous_text"

如果您将其嵌入到其他 LinearLayouts 中,也许您还应该重新考虑是否可以使用relativeLayouts也按照下面提供的高效布局指南:

http://developer. android.com/resources/articles/layout-tricks-efficiency.html

让我知道这是否有助于获得一些荣誉;)
谢谢,祝你好运!

I don't know the exact context in which you are using this, but you should probably change the LinearLayout to a relative one (it's a simple change in to your textViews adding the following:

  • For the first text:

    android:layout_alignParentLeft="true"

  • For the next texts

    android:layout_toRightOf="@id/previous_text"

If you are embedding this inside other LinearLayouts, perhaps you should also reconsider whether you can use relativeLayouts there too as per the efficient layout guidelines provided below:

http://developer.android.com/resources/articles/layout-tricks-efficiency.html

Let me know if this helps with some kudos ;)
Thanks and good luck!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文