zoukankan      html  css  js  c++  java
  • Android SwipeSelector

    

    Android SwipeSelector

    Android SwipeSelector是github上一个第三方开源的项目,其项目主页:https://github.com/roughike/SwipeSelector
    SwipeSelector实现一种选择方式,类似于ViewPager,如动图所示:



    SwipeSelector本身的例子比较清晰,容易看懂,使用SwipeSelector,先写一个布局:

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginTop="16dp"
                android:text="披萨饼"
                android:textAppearance="@style/TextAppearance.AppCompat.Title" />
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:text="选项"
                android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
    
            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:background="#DDDDDD" />
    
            <com.roughike.swipeselector.SwipeSelector
                android:id="@+id/sizeSelector"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
    
            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:background="#DDDDDD" />
    
            <com.roughike.swipeselector.SwipeSelector
                android:id="@+id/toppingSelector"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
    
            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:background="#DDDDDD" />
    
            <com.roughike.swipeselector.SwipeSelector
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:id="@+id/deliverySelector"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:swipe_descriptionGravity="center"
                app:swipe_descriptionTextAppearance="@style/TextAppearance.AppCompat.Body1"
                app:swipe_indicatorActiveColor="@android:color/holo_red_light"
                app:swipe_indicatorInActiveColor="@android:color/holo_blue_light"
                app:swipe_indicatorMargin="20dp"
                app:swipe_indicatorSize="10dp"
                app:swipe_titleTextAppearance="@style/TextAppearance.AppCompat.Title" />
    
            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:background="#DDDDDD" />
    
            <Button
                android:id="@+id/sendButton"
                style="?attr/buttonStyle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="16dp"
                android:background="@android:color/holo_orange_dark"
                android:text="提交"
                android:textColor="#FFFFFF" />
        </LinearLayout>
    </ScrollView>

    注意最后一个SwipeSelector的变化,重新定制了一些样式。



    上层Java代码:

    package zhangphil.demo;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Toast;
    
    import com.roughike.swipeselector.SwipeItem;
    import com.roughike.swipeselector.SwipeSelector;
    
    public class MainActivity extends AppCompatActivity {
        /**
         * Size options
         */
        private static final int SIZE_KIDS = 0;
        private static final int SIZE_NORMAL = 1;
        private static final int SIZE_LARGE = 2;
        private static final int SIZE_HUGE = 3;
    
        /**
         * Topping options
         */
        private static final int TOPPINGS_EMILY = 0;
        private static final int TOPPINGS_BOB = 1;
        private static final int TOPPINGS_HANS = 2;
        private static final int TOPPINGS_ANDREI = 3;
    
        /**
         * 邮递选项
         */
        private static final int DELIVERY_NONE = 0;
        private static final int DELIVERY_YES = 1;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            final SwipeSelector sizeSelector = (SwipeSelector) findViewById(R.id.sizeSelector);
            sizeSelector.setItems(
                    new SwipeItem(-1, "请选择尺寸", "Start by swiping left."),
                    new SwipeItem(SIZE_KIDS, "Kids' size", "For the small appetite. Can be shared by four toddlers."),
                    new SwipeItem(SIZE_NORMAL, "Normal", "Our most popular size. Ideal for kids before their growth spurt."),
                    new SwipeItem(SIZE_LARGE, "Large", "This is two times the normal size. Suits well for the hangover " +
                            "after a bachelor party."),
                    new SwipeItem(SIZE_HUGE, "Huge", "Suitable for families. Also perfect for a bigger appetite if your " +
                            "name happens to be Furious Pete.")
            );
    
            final SwipeSelector toppingSelector = (SwipeSelector) findViewById(R.id.toppingSelector);
            toppingSelector.setItems(
                    new SwipeItem(-1, "Select toppings", "Start by swiping left."),
                    new SwipeItem(TOPPINGS_EMILY, "Aunt Emily's", "Strawberries, potatoes and cucumber. Just what Aunt " +
                            "Emily found in her backyard."),
                    new SwipeItem(TOPPINGS_BOB, "Uncle Bob's Special", "Ranch dressing, bacon, kebab and double pepperoni. " +
                            "And also some lettuce, because lettuce is healthy."),
                    new SwipeItem(TOPPINGS_HANS, "Hans' Meat Monster", "Ham, sauerbraten, salami and bratwurst. Hans likes " +
                            "his meat."),
                    new SwipeItem(TOPPINGS_ANDREI, "Andreis' Russian Style", "Whole pickles and sour cream. Prijat" +
                            "novo appetita!")
            );
    
            final SwipeSelector deliverySelector = (SwipeSelector) findViewById(R.id.deliverySelector);
            deliverySelector.setItems(
                    new SwipeItem(-1, "选择邮递选项", "Start by swiping left."),
                    new SwipeItem(DELIVERY_NONE, "No delivery", "Come to our lovely restaurant and pick up the pizza yourself."),
                    new SwipeItem(DELIVERY_YES, "Delivery", "Our minimum-wage delivery boy will bring you the pizza by his own " +
                            "scooter using his own gas money.")
            );
    
            findViewById(R.id.sendButton).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    SwipeItem selectedSize = sizeSelector.getSelectedItem();
                    SwipeItem selectedToppings = toppingSelector.getSelectedItem();
                    SwipeItem selectedDelivery = deliverySelector.getSelectedItem();
    
                    String toastMessage = "";
    
                    if ((Integer) selectedSize.value != -1) {
                        toastMessage += "Size: " + selectedSize.title;
                    } else {
                        toastMessage += "No size selected.";
                    }
    
                    if ((Integer) selectedToppings.value != -1) {
                        toastMessage += "
    Toppings: " + selectedToppings.title;
                    } else {
                        toastMessage += "
    No toppings selected.";
                    }
    
                    if ((Integer) selectedDelivery.value != -1) {
                        toastMessage += "
    Delivery: " + selectedDelivery.title;
                    } else {
                        toastMessage += "
    No delivery method selected.";
                    }
    
                    Toast.makeText(getApplicationContext(), toastMessage, Toast.LENGTH_LONG).show();
                }
            });
        }
    }
    



    代码运行结果:

  • 相关阅读:
    asp.net :使用jquery 的ajax +WebService+json 实现无刷新去后台值
    如何清理数据库缓存
    如何在虚拟机中Linux+Oracle10gRAC安装
    ORA01031 权限不足存储过程中DBA 角色用户无法执行DDL
    如何查看存储过程执行计划
    如何查看执行计划
    如何使用tkprof
    C#位运算讲解与示例[转]
    C#中Invalidate() 方法
    如何创建强命名程序集, 如何查看强命名程序集的PublicKeyToken
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6147291.html
Copyright © 2011-2022 走看看