- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定我的问题是否可以理解。我的布局中有一个 Image
和一个 ViewGroup
。 ViewGroup
与 GridView
相当,我在其中有可以拖放的项目。现在我有兴趣将我的 ViewGroup
的项目拖到图像上,但每次我尝试时,这些项目似乎都有一个较低的 z-index,因为它消失在图像后面。
我已经在 ViewGroup
及其项上尝试了与 bringToFront
的组合,但没有任何效果。现在我的问题是,是否有可能将 viewgroups
项放在 viewgroups
兄弟项的前面。有没有人有这方面的经验?
我的 xml 看起来像这样,其中 GridView
是我的 Viewgroup
...图像资源和图像的可见性在代码中设置:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_gridview_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="@string/tag_fragment_GridView"
android:background="#FFF"
android:orientation="vertical" >
<ImageView
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:visibility="gone" />
<de.test.GridView
android:id="@+id/grid_view1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/img"
android:background="#FFF"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="none"
android:tag="grid_view_tag" >
</de.test.GridView>
编辑:我使用 BaseAdapter 来显示布局,因为我有动态数量的页面,可以使用此库翻转这些页面 https://github.com/openaphid/android-flip .
我创建的布局如下:
public View loadView(final View view, final int position) {
final GridView dgv = (GridView) view
.findViewById(R.id.grid_view1);
dgv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(android.widget.AdapterView<?> arg0, View v,
int position, long arg3) {
// Simple click listener for the items...
}
});
dgv.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if (Build.VERSION.SDK_INT < 16) {
dgv.getViewTreeObserver()
.removeGlobalOnLayoutListener(this);
} else {
dgv.getViewTreeObserver()
.removeOnGlobalLayoutListener(this);
}
int displayHeight = view.getHeight();
int displayWidth = view.getWidth();
dgv.initChilds(displayWidth, displayHeight,
2,
2);
} else {
mImage = (ImageView) view
.findViewById(R.id.img);
mImage.getLayoutParams().height = displayHeight / 2;
mImage.setImageResource(R.drawable.bild);
dgv.initChilds(displayWidth,
displayHeight / 2, 2,
2);
}
updateGridView();
}
});
mList.add(view);
return view;
}
initChilds() - 方法确定 View 组中每个项目的大小。当通过长按选择时,我想将 View 组项目设置在前面。 longclicklistener 看起来像这样:
@Override
public boolean onLongClick(View view) {
draggedItem = getDraggedView(); draggedItem.bringToFront();
callback.bringGridToFront();
return true;
}
我尝试像这样将项目带到最前面,但它不起作用...回调变量是 baseadapter 类的实例,它调用 bringGridToFront()-方法,当前执行以下代码:
public void bringGridToFront() {
View view = mList.get(mCurrentPage);
RelativeLayout rl = (RelativeLayout) view.findViewById(R.id.relative_gridview_layout);
GridView dgv = (GridView) view.findViewById(R.id.grid_view1);
rl.bringChildToFront(dgv);
}
最佳答案
Android 根据 View 在布局树表中的位置管理 z-index。具有最大索引的 View 将自己绘制在其他 View 之上。在您的布局中,您的自定义网格位于其他网格之上,因为它是布局中的最后一个 View ,因此它获得最大的索引。
在你的代码中我可以看到你在调用
draggedItem = getDraggedView();
在 onLongClick(View view) 事件中。 getDraggedView() 可能会返回一个 View ,该 View 是您正在拖动的 View ,它不会显示在顶部(这只是一个猜测,因为您没有发布 getDraggedView() 代码)。如果是这种情况,您需要知道拖动 View 的父级,例如,如果父级是主窗口,那么您的整个布局将位于它之上。所以我最好的猜测是在您的布局中添加拖动的 View ,因为它将是最后一个 View ,它将位于顶部。
另外我注意到你在打电话
mImage.getLayoutParams().height = displayHeight / 2;
在您的 ImageView 中以更改其高度。我认为这不是正确的方法,因为如果查看 View 的源代码 here在 setLayoutParams 代码所在的第 10130 行,您会看到除了布局参数集之外还发生了一些其他事情。但是我不知道这是否与您的问题有关。
我知道我的答案更像是一个猜测,而不是一个完整的答案,但这是我根据问题的数据所能做的最好的回答。
希望这有助于...
关于android - 是否可以将 ViewGroups 项目带到 ViewGroups sibling 的前面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17549917/
我正在尝试在 Android 上实现以下设计。 我知道要在那个位置放置按钮,我应该有两个约束布局;一种用于整个更改密码表单,另一种用于不带保存按钮的更改密码表单,然后将保存按钮的 Top 和 Bott
我必须从原始数据中获取声音并在listview中显示它们,我可以做到这一点,但名称与原始数据中的文件夹名称相同。 如何用我想要的名称更改它们?(还将播放的歌曲写入 TextView ) Here is
这很令人困惑,我已经阅读了 StackOverFlow 中的文档和其他一些问题。我只是不明白(或者答案不符合我的需要) 事情是这样的:我有一个 php,其中有两个来自 SQL 查询的值。到目前为止,一
我有一种设计模式,但我不确定如何创建它。它应该是这样的: 我仍在努力将 ImageView 放在卡片 View 前面。对此有任何想法或如何做到这一点的例子吗?谢谢! 这是我所做的:
我目前正在使用 Swift 编写游戏,但遇到了一些问题。基本上,我在 Storyboard中创建了所有 UI,并为每个屏幕(主菜单、设置、存储、播放等)提供了相应的 View Controller 。
在我的应用程序中,用户在 map 上绘制了一个形状并使用 UIBeizerPath 我正在绘制该路径。然后根据路径的坐标,我显示仅在该区域的结果。一切都很好,除了现在当注释落在 map View 上时
我有一个滑动 Pane 布局,左侧是一个 ListView ,右侧是一个包含我的 fragment 的 Pane 。当我单击 ListView 项时,我的 fragment 会正确加载到右侧 Pane
我有以下代码: public class MainActivity extends ActionBarActivity { EditText userfield; EditText p
我想把最后一列“描述”放到下一行 这是 fiddle http://jsfiddle.net/pratbhoir/fNhKp/12/ 应该是这样的我需要表格,描述td必须在同一个tr中。 Item n
我确定这很简单,但我似乎无法弄明白。我基本上是在尝试使用 C++ 生成 HTML 字符串并将其返回以存储在 Objective-C 模型类中,以便稍后在 Web View 中使用。 它的 C++ 端似
我正在使用 Mapbox SDK (SWIFT) 并创建了我的自定义 map 。我在 Storyboard的 map 上添加了一个按钮和图像,但是当我运行该应用程序时,它似乎隐藏在后面。我尝试了所有方
我有一个文本编辑器,其中有一个图像工具,它有一个插入功能,可以在左侧和右侧添加边距,但如果您想将图像移到父容器之外,则只有左边距有效,但右边距只是停在边缘容器 .draft-bg { paddin
我创建了一个可消耗的 COM 类库。 类库获取相机的图像。它的类型为图像/位图。 我在VB6中使用类库,我需要在VB6中显示这个图像。 如何将此 System.Drawing.Image 转换为 VB
我正在从 Ruby 转向 Objective-C,并且我一直在做: NSObject *foo; @property (nonatomic,retain) NSObject *foo; 在 .h 文件
我有一个项目需要 Android、iOS 和桌面模块来连接到 GAE 后端。 我通过 Android Studio 创建了后端,它工作正常。 据我了解,Android Studio 会生成端点类文件,
好吧,基本上我有一个带有一系列稍微重叠的 subview 的 View 。单击 subview 时,它会通过非常简单的两行代码移动到顶部(除其他外): -(void)mouseDown:(NSEven
在 sonarqube 服务器(版本 5.4)上,我为 C# 创建了一个新的质量配置文件,并且启用了一些规则,例如“CA1001:拥有一次性字段的类型应该是一次性的”。我已将此新配置文件定义为默认配置
Eclipse 有很多特性可以为开发者节省很多时间,例如: 1) 覆盖/实现方法... 2) TODO 列表... 3) 快速访问文档...(可能还有其他内容) 是否有任何适用于 VS 2010 的插
我是一名优秀的程序员,十分优秀!