我使用ScrollView
多个Fragments
,它们在运行时放置。
现在,如果我在片段中按Button
,我想向下滚动到底部
相应的片段,而不是整个scrollview
的底部。
片段底部始终有一个按钮,也许可以触发按钮作为" scrollTo .."的项目。
有什么建议怎么做?
这是ScrollView
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/scrollView">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/fragment1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />
<LinearLayout
android:id="@+id/fragment2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />
<LinearLayout
android:id="@+id/fragment3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />
...
</LinearLayout>
</ScrollView>
这就是一个片段的样子
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
...
</LinearLayout>
<LinearLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:orientation="vertical"
android:visibility="visible">
...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<android.support.v7.widget.AppCompatButton
android:layout_width="120dp"
android:layout_height="45dp"
android:text="@string/continueBtn"
android:textAllCaps="true"
android:textStyle="bold" />
<android.support.v7.widget.AppCompatButton
android:layout_width="120dp"
android:layout_height="45dp"
android:layout_marginStart="10dp"
android:text="@string/backBtn"
android:textAllCaps="true"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:1)
我会使用而不是ScrollView
,RecyclerView
,每个列表元素都是你的每个片段。然后,为了移动到每一个,我将使用scrollToPosition()
方法。
答案 1 :(得分:0)
这解决了我的问题:
var height = 0;
function update() {
$(".match" ).each(function () {
height = $(this).width();
console.log(height);
$(this).css('height',height + 'px');
});
$(".oblong" ).css('height',height + 'px');
}
我需要的是scrl.post(new Runnable() {
public void run() {
scrl.smoothScrollBy(0,btn.getBottom());
}
});
而不是scrollBy
。