Android开源:SlideLayout-超级迷你轻量级全方向完美侧滑控件

myqq9877 8年前
   <h2>SlideLayout</h2>    <p>纯手工超级迷你轻量级全方向完美滑动处理侧滑控件(比官方 support v4 包 SlidingPaneLayout 控件更加 Q 迷你,累计代码不足 300 行),支持上下左右有各种侧拉,可配置侧拉松手临界距离,支持单独使用、ListView、GridView、RecycleView、ScrollView、ViewPager 等各种嵌套(作为 item 使用或者作为以上所有控件的父容器使用),具体不同配置展示效果如下图。</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/fb2447724b5dc6a59c66941565e57d27.gif"></p>    <h2>说明文档</h2>    <p>如下是关于 SlideLayout 的相关使用方式、属性说明、拓展自定义的解释说明。</p>    <h3>使用样例</h3>    <p>实现类似手机 QQ 侧滑效果,ListView 向右侧滑拉出侧边栏。</p>    <pre>  <code class="language-java"><cn.yan.library.SlideLayout      android:layout_width="match_parent"      android:layout_height="match_parent"      app:slideDirection="fromLeft"      app:slideCriticalValue="50dp">      <ListView          android:layout_width="match_parent"          android:layout_height="match_parent"          android:entries="@array/demo_array"/>        <TextView          android:background="@android:color/holo_red_light"          android:layout_width="100dp"          android:layout_height="match_parent"          android:text="我是侧滑区域"/>  </cn.yan.library.SlideLayout></code></pre>    <p>实现类似手机 QQ ListView 聊天列表任意 item 向左滑动呼出删除按钮效果。</p>    <pre>  <code class="language-java"><cn.yan.library.SlideLayout      android:layout_width="match_parent"      android:layout_height="80dp">      <TextView          android:id="@+id/content_id"          android:gravity="center"          android:layout_width="match_parent"          android:layout_height="match_parent"/>        <LinearLayout          android:layout_width="200dp"          android:layout_height="match_parent"          android:orientation="horizontal">          <TextView              android:id="@+id/slide_id"              android:background="@android:color/holo_blue_dark"              android:layout_width="100dp"              android:layout_height="match_parent"              android:text="删除"/>            <TextView              android:id="@+id/slide1_id"              android:background="@android:color/holo_green_dark"              android:layout_width="100dp"              android:layout_height="match_parent"              android:text="收藏"/>      </LinearLayout>  </cn.yan.library.SlideLayout></code></pre>    <h3>已实现类说明</h3>    <table>     <thead>      <tr>       <th>类别</th>       <th>类名</th>       <th>说明</th>      </tr>     </thead>     <tbody>      <tr>       <td>library</td>       <td>SlideLayout</td>       <td>支持配置各种方向侧滑和各种嵌套或者被嵌套的侧滑控件。</td>      </tr>     </tbody>    </table>    <h3>属性说明</h3>    <table>     <thead>      <tr>       <th>属性</th>       <th>含义</th>      </tr>     </thead>     <tbody>      <tr>       <td>app:slideCriticalValue</td>       <td>SlideLayout 任意方向侧滑拉出多大距离后松手敏感距离,譬如侧滑大于 50dp 后松手则自动滑开,小于 50 dp 内松手则自动收起;不设置默认为 SlideLayout 控件第二个子成员 width 的二分之一。</td>      </tr>      <tr>       <td>app:slideDirection</td>       <td>侧滑从哪边拉出,默认为从右侧拉出,可取值为 fromRight、fromLeft、fromTop、fromBottom。</td>      </tr>     </tbody>    </table>    <h3>SlideLayout 提供方法说明</h3>    <table>     <thead>      <tr>       <th>方法</th>       <th>说明</th>      </tr>     </thead>     <tbody>      <tr>       <td>int getSlideState()</td>       <td>获取当前侧滑控件所处状态,STATE_CLOSE、STATE_SLIDING、STATE_OPEN。</td>      </tr>      <tr>       <td>void smoothCloseSlide()</td>       <td>平滑的收起侧滑。</td>      </tr>      <tr>       <td>void smoothOpenSlide()</td>       <td>平滑的打开侧滑。</td>      </tr>     </tbody>    </table>    <h3>SlideLayout 使用注意事项</h3>    <p>SlideLayout 控件有且必须包含两个子控件,第一个为 content 布局,默认撑满整个 SlideLayout,第二个为 slide 布局,默认不可见;切记两个子控件所处顺序,子控件层级不限,具体模板如下:</p>    <pre>  <code class="language-java"><cn.yan.library.SlideLayout      android:layout_width="match_parent"      android:layout_height="match_parent">      <控件一(Content),不限嵌套层级等,默认可见/>        <控件二(slide),不限嵌套层级等,默认不可见/>  </cn.yan.library.SlideLayout></code></pre>    <h2> </h2>    <p> </p>    <p> </p>