【问题标题】:Horizontal Scroll View inside LinearLayout - AndroidLinearLayout 内的水平滚动视图 - Android
【发布时间】:2013-03-07 00:00:43
【问题描述】:

我有一个自定义列表。我正在尝试仅水平滚动特定部分。例如,在下图中,我试图仅水平滚动橙色框。

这是我的 XML 布局:在 XML 布局中,橙色框以 "android:id="@+id/projected" 开头

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="63dp"
    android:layout_marginLeft="0dp"
    android:background="@drawable/bkg_img_fullcell"
    android:orientation="horizontal" >

    <!-- Left Column -->

    <LinearLayout
        android:id="@+id/widget_lineupview_playerdata_container"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/widget_lineup_table_row_height"
        android:layout_toRightOf="@+id/sideView"
        android:gravity="center_vertical"
        android:layout_toLeftOf="@+id/projected"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="4" >

            <!-- rel 1 -->

            <LinearLayout
                android:id="@+id/playername1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="3"
                android:layout_toRightOf="@+id/sideView">

                <com.cbssports.nflapp.ffb.MyTextViewBold
                    android:id="@+id/widget_lineupview_playerdata_playername"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:inputType="text|textNoSuggestions"
                    android:layout_marginLeft="5dp"
                    android:maxLines="1"
                    android:text=""
                    android:textColor="#08233e"
                    android:textSize="15dp" />


            </LinearLayout>
            <!-- rel 2 -->

            <LinearLayout
                android:id="@+id/widget_lineupview_playerdata_playerStatsIconContainer"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_toRightOf="@+id/playername1"
                android:orientation="horizontal" >

                <ImageView
                    android:id="@+id/widget_lineupview_playerdata_statusIconSuspended"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="1dp"
                    android:src="@drawable/btn_s"
                    android:visibility="gone" />
            </LinearLayout>
 </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_toRightOf="@+id/sideView" >

            <TextView
                    android:id="@+id/widget_lineupview_playerdata_playerPositionTeam"
                    android:layout_marginLeft="5dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:inputType="text|textNoSuggestions"
                    android:maxLines="1"
                    android:text=""
                    android:textColor="#333333"
                    android:textSize="12dp" />


            <ImageView
                android:id="@+id/widget_lineupview_playerdata_startingPitcherStatus"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="3dp"
                android:layout_marginRight="3dp"
                android:src="@drawable/btn_baseballgraphic"
                android:visibility="gone" />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/sideView"
        android:layout_width="@dimen/widget_lineup_table_status_column_width"
        android:layout_height="@dimen/widget_lineup_table_row_height"
        android:layout_alignParentLeft="true"
        android:background="@drawable/bkg_img_rosterpos"
        android:gravity="center" >

        <!-- <Button -->
        <com.cbssports.nflapp.ffb.VerticalTextView
            android:id="@+id/widget_lineupview_playerdata_playerStatusButton"
            android:layout_width="21dp"
            android:layout_height="60dp"
            android:layout_margin="0dp"
            android:padding="0dp"
            android:textColor="#004a8e"
            android:textSize="11dp"
            android:textStyle="bold"
            android:gravity="bottom|center" />
    </LinearLayout>
***<LinearLayout
        android:id="@+id/projected"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/widget_lineup_table_row_height"
        android:background="@drawable/bkg_img_whiteoverlay"
        android:layout_toLeftOf="@+id/percentStarted">

        <TextView
            android:id="@+id/widget_lineupview_player_h2h_stats_started_custom"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:gravity="center"
            android:textStyle="bold"
            android:textSize="16dp"
            android:textColor="#333333" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/percentStarted"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/widget_lineup_table_row_height"
        android:background="@drawable/bkg_img_whiteoverlay"
         android:layout_alignParentRight="true"
         android:layout_marginLeft="2dp">

        <TextView
            android:id="@+id/widget_lineupview_player_projected_custom"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:gravity="center"
            android:textStyle="bold"
            android:textSize="16dp"
            android:textColor="#333333" />
    </LinearLayout>***
</RelativeLayout>

【问题讨论】:

  • 有什么问题,除了7个警告,我们能看到一些日志可能是更好的解释吗?
  • 我正在尝试水平滚动橙色框。想象一下,如果那里有更多的价值。现在我有两个。假设如果有超过 5 个。我在
    好吧,试试这个:用这个可绘制的“@drawable/bkg_img_fullcell”在RelativeLayout 上添加HorizontalScroll,并尝试为每个视图赋予一个独特的@+id/ 以区分它们。如果这不起作用,请尝试将有问题的视图包装在自己的布局中,这样HorizontalView 将只有一个孩子。

标签: android android-layout scrollview horizontal-scrolling horizontalscrollview


【解决方案1】:

您还可以将 LinearLayout 的 fillViewport 设置为 true 并将 foregroundGravity 设置为 true (不确定是否需要最后一个),并将子 LinearLayout 的重力设置为右:

<HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="@dimen/IconM"
        android:id="@+id/account_food_scroll"
        android:layout_alignParentEnd="false"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@+id/client_add_button_layout"
        android:foregroundGravity="right"
        android:layout_marginLeft="@dimen/PadM"
        android:fillViewport="true">

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/IconM"
            android:id="@+id/account_food_layout"
            android:gravity="right">
            </LinearLayout>
    </HorizontalScrollView>

【讨论】:

    【解决方案2】:

    谢谢g00dy,我可以通过在horizo​​ntalScrollView里面添加一个LinearLayout来解决它。

    这是我的解决方案。

       <HorizontalScrollView
                    android:id="@+id/horizontalScroll"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:animateLayoutChanges="true"
                    android:scrollbars="none">
       <LinearLayout
                    android:id="@+id/horizontalScroll_linear"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:layout_alignParentRight="true" >
             <LinearLayout
                 android:id="@+id/projected"
                 android:layout_width="wrap_content"
                 android:layout_height="@dimen/widget_lineup_table_row_height"
                 android:background="@drawable/bkg_img_whiteoverlay"
                 android:layout_toLeftOf="@+id/percentStarted">
    
                    <TextView
                        android:id="@+id/widget_lineupview_player_h2h_stats_started_custom"
                        android:layout_width="50dp"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"
                        android:gravity="center"
                        android:textStyle="bold"
                        android:textSize="16dp"
                        android:textColor="#333333" />
               </LinearLayout>
            <LinearLayout
                android:id="@+id/percentStarted"
                android:layout_width="wrap_content"
                android:layout_height="@dimen/widget_lineup_table_row_height"
                android:background="@drawable/bkg_img_whiteoverlay"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="2dp">
    
                 <TextView
                    android:id="@+id/widget_lineupview_player_projected_custom"
                    android:layout_width="50dp"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:gravity="center"
                    android:textStyle="bold"
                    android:textSize="16dp"
                    android:textColor="#333333" />
          </LinearLayout>
    </LinearLayout>
    </HorizontalScrollView>
    

    【讨论】:

      猜你喜欢
      • 2013-07-18
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多