在网格上拖放

时间:2016-05-17 21:29:29

标签: android android-layout drag-and-drop viewgroup

我目前正在开发Android APP,但我遇到了一些障碍。我正在使用拖放功能拖动不同的项目并将它们放入不同的布局。我想要放置要在网格中设置项目的布局。我可以在一般区域中放置一个项目,它会捕捉到网格上的该位置。

我已经做到了这一点,但我觉得它真的很笨重,必须有一个更简单的方法来实现这一目标。这就是我现在拥有它的方式..

   <RelativeLayout 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"
    tools:context="com.example.david.seniorproject.Controller_LayoutFragment"
    tools:showIn="@layout/activity_controller__layout">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".8"
            android:id="@+id/linear_layout">

            <GridLayout
                android:id="@+id/frame_layout"
                android:layout_width="0dp"
                android:layout_weight=".75"
                android:layout_height="match_parent">

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="0"
                    android:id="@+id/relative1"
                    android:layout_column="0"></RelativeLayout>

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="0"
                    android:id="@+id/relative2"
                    android:layout_column="1" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="0"
                    android:id="@+id/relative3"
                    android:layout_column="2" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="0"
                    android:id="@+id/relative4"
                    android:layout_column="3" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="0"
                    android:id="@+id/relative5"
                    android:layout_column="4" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="0"
                    android:id="@+id/relative6"
                    android:layout_column="5" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="1"
                    android:id="@+id/relative7"
                    android:layout_column="0" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="1"
                    android:id="@+id/relative8"
                    android:layout_column="1" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="1"
                    android:id="@+id/relative9"
                    android:layout_column="2" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="1"
                    android:id="@+id/relative10"
                    android:layout_column="3" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="1"
                    android:id="@+id/relative11"
                    android:layout_column="4" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="1"
                    android:id="@+id/relative12"
                    android:layout_column="5" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="2"
                    android:id="@+id/relative13"
                    android:layout_column="0" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="2"
                    android:id="@+id/relative14"
                    android:layout_column="1" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="2"
                    android:id="@+id/relative15"
                    android:layout_column="2" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="2"
                    android:id="@+id/relative16"
                    android:layout_column="3" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="75dp"
                    android:layout_row="2"
                    android:id="@+id/relative17"
                    android:layout_column="4" />

                <RelativeLayout
                    android:layout_width="74dp"
                    android:layout_height="wrap_content"
                    android:layout_row="2"
                    android:id="@+id/relative18"
                    android:layout_column="5" />

            </GridLayout>
            <ListView
                android:layout_width="0dp"
                android:layout_weight=".25"
                android:layout_height="wrap_content"
                android:id="@+id/listView"
                android:backgroundTint="#ff5500" />
        </LinearLayout>

        <HorizontalScrollView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".3"
            android:paddingRight="80dp"
            android:id="@+id/horizontalScrollView"
            android:layout_gravity="center_horizontal" >
            <LinearLayout
                android:id="@+id/input_items"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal">
                <Button
                    android:layout_width="80dp"
                    android:text="Test"
                    android:layout_height="match_parent"
                    android:background="@drawable/red_circle"
                    android:id="@+id/button2" /></LinearLayout>
        </HorizontalScrollView>


    </LinearLayout>

</RelativeLayout>

正如您所看到的,我在GridLayout中均匀地放置了一堆布局。它有效,但我觉得有更好的方法。该按钮只是用于测试拖放功能的虚拟数据。

所以我的问题是,有没有办法设置gridLayout,或者不同的布局与我的设置相同,没有所有额外的布局,或者只是创建自定义ViewGroup会更好。

0 个答案:

没有答案