(由我自己解决)
需要一些关于如何做到这一点的建议
澄清我添加了两张图片,显示了左侧的两个slideDrawers
它们默认重叠,所以我将一个图像更改为android-icon以更好地查看问题。
供参考
Im Using this Drawer custom widget created by Alessandro Crugnola
对于我在图像左侧看到的两个抽屉。
我知道默认情况下处理程序是以位置为中心的,需要建议 如何将它们垂直放在一起。 如图所示,他们必须占据屏幕。
我测试了layout_weight =“1”并将它们放在LinearLayout中 但这给了我一个半尺寸的抽屉。我非常了解默认值 slidedrawer不能这样做,所以问题是什么样的黑客会这样做。
有办法做到这一点吗?
(如果两张图片重叠,可以看到更新,详见下文讨论)
我的XML:
<Gallery xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/imageEditGallery"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:spacing="2px"
android:gravity="top"
android:paddingTop="20dip"
/>
<RelativeLayout
android:id="@+id/InnerRelativeLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >
<EditText
android:id="@+id/etx_addtext_drawtext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="Enter text here"
/>
</RelativeLayout>
<com.bulk.sprise.editimage.SlidingDrawerLeftFriends
xmlns:my="http://schemas.android.com/apk/res/com.bulk.sprise"
android:id="@+id/sliding_drawer_left_friends"
my:direction="leftToRight"
android:layout_width="280dip"
android:layout_height="wrap_content"
my:handle="@+id/handleLeftFriends"
my:content="@+id/content"
>
<include
android:id="@id/content"
layout="@layout/drawer_left_friends_content_editimage" />
<ImageView
android:id="@id/handleLeftFriends"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/drawer_left"
android:topOffset="10dip"
/>
</com.bulk.sprise.editimage.SlidingDrawerLeftFriends>
<com.bulk.sprise.editimage.SlidingDrawerLeftOptions
xmlns:my="http://schemas.android.com/apk/res/com.bulk.sprise"
android:id="@+id/sliding_drawer_left_options"
my:direction="leftToRight"
android:layout_width="280dip"
android:layout_height="wrap_content"
my:handle="@+id/handleLeftOptions"
my:content="@+id/content"
>
<include
android:id="@id/content"
layout="@layout/drawer_left_options_content_editimage" />
<ImageView
android:id="@id/handleLeftOptions"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"
android:topOffset="40dip"
/>
</com.bulk.sprise.editimage.SlidingDrawerLeftOptions>
<LinearLayout android:id="@+id/linearLayout_container_SlidingDrawerRight"
android:layout_width="110dip"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:visibility="visible"
>
<com.bulk.sprise.editimage.WrappingSlidingDrawer android:id="@+id/slidingDrawerRight"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:handle="@+id/slideHandleButtonRight"
android:content="@+id/contentLayout2"
android:orientation="horizontal"
android:background="@null">
<ImageButton android:id="@+id/slideHandleButtonRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/drawer_right"
android:onClick="btnSlidingDrawerHandler">
</ImageButton>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/contentLayout2"
android:orientation="vertical"
android:background="@null"
>
<ImageButton android:id="@+id/btn_A"
android:layout_height="60dip"
android:layout_width="60dip"
android:text="Button_A"
android:background="@android:color/transparent"
android:src="@drawable/plus_ball"
android:onClick="btnAListener"
android:gravity="right"
android:scaleType="fitXY">
</ImageButton>
<ImageButton android:id="@+id/btn_B"
android:layout_height="60dip"
android:layout_width="60dip"
android:layout_below="@+id/btn_A"
android:text="Button_B"
android:background="@android:color/transparent"
android:src="@drawable/text_ball"
android:gravity="right"
android:onClick="btnBListener"
android:scaleType="fitXY">
</ImageButton>
<ImageButton android:id="@+id/btn_C"
android:layout_height="60dip"
android:layout_width="60dip"
android:layout_below="@+id/btn_B"
android:text="Button_B"
android:background="@android:color/transparent"
android:src="@drawable/delete_ball"
android:gravity="right"
android:onClick="btnCListener"
android:scaleType="fitXY">
</ImageButton>
</RelativeLayout>
</com.bulk.sprise.editimage.WrappingSlidingDrawer>
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:1)
让我们同时调用滑动抽屉sd1和sd2。解决这个问题的一个想法(未经测试)是为处理程序提供自定义图像,并且有一个滑动抽屉(sd1)可见,而其他(sd2)隐藏(可见性设置为“已消失”)。
然后,在您的视图中,在显示sd1处理程序的边缘处,右边有sd2处理程序图像的图像(按钮或普通图像)。这将使UI看起来有2个滑动式抽屉等待拉出。
现在,当用户拔出sd1时,它根据设计工作。当他点击另一张图片时,会使sd2可见并被拉出。这样你就可以有两个滑动抽屉。
这种方法的潜在复杂性是: 1.未经测试 2.您可能需要一个自定义视图才能将sd2处理程序映像紧跟在sd1处理程序旁边。 3.在具有不同屏幕尺寸的不同设备上处理此方法可能会非常棘手。
答案 1 :(得分:0)
管理让自己工作。
这是经过测试并适用于任何需要它的人
没有在不同屏幕尺寸上测试它。
创建两个处理程序图像 对于hdpi,一个是58x400,另一个是58x132 在较大的一个地方,图形在下部,所以顶部是透明的 另一个图像处理程序必须看起来像普通的处理程序
只需在xml中安排你的两个slidingDawer即可 首先是较大的图像(slidingDrawer)。
你还需要在较小的处理程序上执行bringToFront() 如果gui更改将它放在更大的处理程序
之后就是这样
答案 2 :(得分:0)
哦,我们再次提出另一种可能的解决方案
如果我在LinearLayout中有两个slidingDrawer并将它们定位为什么怎么办?
使用layout_weight="1"
和layout_hight="0dip"
。
这将迫使他们连高度,我有两个抽屉
在左侧垂直均匀分布。
他们当然不会有充分的高度,但我不想使用它们
所以他们都有空的dummy_layout.xml。
我想要使用的是处理器图像的良好和均匀定位。
现在,我接受上面的xml代码并将其放入并制作
处理程序图像view.gone
。某事....
现在左边的sida有四个抽拉器。两个看不见,两个看得见 现在我有两个抽屉处理器和它们的机制 将适用于所有设备。
我看到的是两个抽屉吧 如果我拉它们必须有一些方法将拉动重定向到我的 所需的全高抽屉隐藏在后面。
我认为可以设置假抽屉看不见但是像往常一样拉出汉德尔
通过这样做触发下面真实的drawer.open()
。
也许即时通讯,如果我错了,请纠正我。
你正在关注..