我无法将HorizontalScrollView滚动到某个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有关。如何滚动?
编辑:我认为问题在于以编程方式添加新按钮。
答案 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;
}