2017-02-09 56 views
3

我正在尋找解決方案上的圖像波紋管:如何通過拉動邊緣手勢來調整視圖大小?

enter image description here

,我需要有一個佈局2點可調整大小的意見。 用戶只需將分隔線移動到頂端(ScrolView B變得更高)或底端(ScrolView A變得更高)。

什麼是最好的解決方案,它給出了這種行爲?我知道我可以從ScrollView擴展並覆蓋public boolean onTouchEvent(MotionEvent ev)protected void onDraw(Canvas canvas),但可能會有更簡單的解決方案。我想避免計算移動的數學。感謝您的任何信息。

+1

所以,你基本上想要Android N的分割屏幕視圖。爲什麼不只是基於你的代碼? http://androidxref.com/7.1.1_r6/xref/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java你應該可以扔掉與堆棧有關的所有東西,實際運行的活動。 – JohanShogun

回答

3

如果你想快速解決這個問題,我建議你使用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> 

我創建了兩個個XML的縱向和橫向模式解決您的問題。對於縱向模式,我通過添加spl:orientation="vertical"將面板的方向設置爲垂直,對於lanscape模式,我通過添加spl:orientation="horizontal"將面板的方向設置爲水平。

做完所有這些之後,我看起來像下面一樣。 enter image description here enter image description here

1

做成了這個答案。

你基本上要在Android N的分屏視圖你可以立足的代碼從開源實現在SystemUI: http://androidxref.com/7.1.1_r6/xref/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java

隨着本作的手柄: http://androidxref.com/7.1.1_r6/xref/frameworks/base/packages/SystemUI/src/com/android/systemui/stackdivider/DividerHandleView.java

你可以拋出將所有與堆棧有關的代碼(這是關閉歷史記錄中不同活動的屏幕截圖),總線事件以及任何與運行其他活動(例如應用程序之間的Vsyncing代碼(mSurfaceFlingerOffsetMs))有關的代碼。

它應該給你很小的和易於使用的類。

相關問題