带有线性布局的Horizo​​ntalScrollView不能滚动滚动,滚动

时间:2014-11-06 00:51:41

标签: android xml android-linearlayout horizontal-scrolling horizontalscrollview

我无法将Horizo​​ntalScrollView滚动到某个X位置或X像素。它有一个线性布局,里面有按钮。

<HorizontalScrollView
        android:id="@+id/horizontal_room_list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="0dp"
        android:scrollbars="none">

        <LinearLayout
            android:orientation="horizontal"
            android:id="@+id/roomsBar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <!-- buttons -->

        </LinearLayout>

</HorizontalScrollView>

爪哇:

buttonList = (HorizontalScrollView) findViewById(R.id.horizontal_room_list);
//do stuff, at some point successfully save the scrolling offset with getScrollX()
barOffsetX = buttonList.getScrollX();
Log.e("x", "" + barOffsetX); //this prints a correct > 0 value
buttonList.scrollBy(barOffsetX, 0); //nothing happens, or
buttonList.scrollTo(barOffsetX, 0); //nothing happens

我认为问题可能与LinearLayout有关。如何滚动?

编辑:我认为问题在于以编程方式添加新按钮。

1 个答案:

答案 0 :(得分:0)

您是否使用子视图或线性布局定义了固定,按钮视图将接受40 dp,因此您可以使用此方法转换该dp-into-px,并使用此方法的返回值。

public static float convertDpToPixel(float dp, Context context) {
    Resources resources = context.getResources();
    DisplayMetrics metrics = resources.getDisplayMetrics();
    float px = dp * (metrics.densityDpi / 160f);
    return px;
}