我正在寻找解决方案,如下图所示:
android - 如何使用拉边缘手势调整 View 大小?-LMLPHP
我需要在一个布局中有两个可调整大小的视图。
用户只需将分隔线移到顶部(scrolview b变高)或底部(scrolview a变高)。
什么是最好的解决方案,这给了这种行为?我知道我可以从scrollview扩展到overridepublic boolean onTouchEvent(MotionEvent ev)protected void onDraw(Canvas canvas),但可能有更简单的解决方案。我想避免计算移动的数学。谢谢你提供任何信息。

最佳答案

如果你想快速解决这个问题,我建议你使用Split Pane Layout
用途:

 <com.mobidevelop.spl.widget.SplitPaneLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:spl="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:id="@+id/splitPaneLayout"
        android:layout_height="match_parent"
        spl:splitterSize="12dp"
        spl:orientation="vertical"
        spl:splitterPosition="50%"
        spl:splitterBackground="#781b23">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text="" />

        </ScrollView>

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:text=""/>

        </ScrollView>

 </com.mobidevelop.spl.widget.SplitPaneLayout>

我通过为纵向和横向模式创建两个xmls解决了您的问题。对于纵向模式,我通过添加spl:orientation="vertical"将面板的方向设置为垂直;对于lanscape模式,我通过添加spl:orientation="horizontal"将面板的方向设置为水平。
在做了这些之后,我得到了下面的样子。
android - 如何使用拉边缘手势调整 View 大小?-LMLPHP
android - 如何使用拉边缘手势调整 View 大小?-LMLPHP

10-08 16:02