Articles of sdk

在视图重叠的情况下控制触摸事件传播

我在尝试控制RecycleView中的触摸事件传播时遇到了一些问题。 所以我有一个RecyclerView填充一组模仿卡片堆栈的CardView(因此它们相互重叠并具有一定的位移,尽管它们具有不同的高程值)。 我目前的问题是每张卡都有一个按钮,因为相对卡位移小于按钮的高度,导致按钮重叠的情况,每当调度触摸事件时,它开始从视图层次结构的底部传播(来自儿童最高的孩子数)。 根据我读过的文章( 这个 , 这个和这个video ),触摸传播取决于父视图中的视图顺序,因此触摸将首先传递给具有最高索引的子项,而我希望仅处理触摸事件通过最顶层视图和RecyclerView的可触摸(它还必须处理拖动和拖动手势)。 目前我正在使用卡片,这些卡片知道他们在父视图层次结构中的位置,以防止错误的孩子处理触摸,但这是非常难看的方式。 我的假设是我必须覆盖RecyclerView的dispatchTouchEvent方法并正确地将触摸事件分派给最顶层的子节点。 但是,当我尝试这种方式时(这也有点笨拙): @Override public boolean dispatchTouchEvent(MotionEvent ev) { View topChild = getChildAt(0); for (View touchable : topChild.getTouchables()) { int[] location = new int[2]; touchable.getLocationOnScreen(location); RectF touchableRect = new RectF(location[0], location[1], location[0] + touchable.getWidth(), location[1] + touchable.getHeight()); if (touchableRect.contains(ev.getRawX(), ev.getRawY())) { return touchable.dispatchTouchEvent(ev); } } return onTouchEvent(ev); […]

你如何一次隐藏多个视图?

我有一个相对布局视图,也有3个子视图。 我试图通过使用setVisibility将相对布局设置为INVISIBLE来将它们全部隐藏在代码中。 有趣的是,当我使用setVisibility(View.INIVISIBLE)时,只隐藏第一个子节点而不是其他两个子节点。 所以我有点困惑 – 如果我将父视图设置为隐形不应该改变所有孩子的可见性或者让他们独自一人? 请随意给我一个解释它的参考页面 – 我找不到任何东西。 更新:我已经尝试将其设置为View.GONE,但同样的事情发生了,除了两个仍然可见的孩子向上移动了一点。 这是相关的XML: 这是我正在使用的相关代码: public void onClick(View v) { //Toggle viewing of options, using “if” in case it is set to View.GONE View view = findViewById(R.id.optionsform); if (view.getVisibility() == View.VISIBLE) view.setVisibility(View.INVISIBLE); else view.setVisibility(View.VISIBLE); }

更新ADT后创建AVD时出错,解析devices.xml时出错

我刚刚将Android SDK更新到最新版本以及我的ADT,之后我无法创建新的AVD。 这是它给我的错误: [2013-03-07 19:55:07 – SDK Manager] Error parsing C:\Users\sr\.android\devices.xml, backing up to C:\Users\sr\.android\devices.xml.old [2013-03-07 19:55:15 – SDK Manager] Error parsing C:\Users\sr\.android\devices.xml, backing up to C:\Users\sr\.android\devices.xml.old 我重新安装了我的eclipse,Android SDK和ADT,但仍然遇到此错误。 我在Windows 7上运行它。如何解决此问题,以便创建新的AVD?

Android:TableLayout右对齐第一列,左第二列

我该怎么做才能得到类似的东西: 我可以在HTML中没有问题但在Android中如何做到这一点?

找不到与layout_hint中给定名称匹配的资源

我是新的,实际上这是我对android程序的第一次尝试。 我正在关注android开发者培训网站。 我的activity_main.xml如下所示: 现在它显示错误和警告,如: 警告 – This text field does not specify an inputType or a hint 错误 – error:Error:No resource found that matches the given name( at ‘layout_hint’ with the value ‘@string/edit_message’)

尝试测试应用时找不到’emulator.exe’

我正在与KonyOne Studio合作构建和测试应用程序。 Android SDK位于C:\Android\adt-bundle-windows-x86_64-20130729\sdk ,模拟器位于C:\Android\adt-bundle-windows-x86_64-20130729\sdk\tools\emulator.exe 。 当我尝试运行应用程序时,我收到错误: Windows找不到’emulator.exe’。 确保正确键入名称,然后重试。 当我刚刚运行emulator.exe可执行文件时,我得到一个快速的cmd屏幕,它会尽快消失。 我的任务管理器中没有显示任何内容。 我设置了以下环境variables: JAVA_HOME: C:\Java\jdk1.6.0_32 PATH: C:\Java\jdk1.6.0_32;D:\Users\SIMONSJP.GROUPINFRA\AppData\Roaming\npm; C:\KonyOne\ImageMagick;C:\apache-ant-1.9.2\bin;C:\Java\jdk1.6.0_32\bin; C:\Android\adt-bundle-windows-x86_64-20130729\sdk\platform-tools; 当然,上面没有空格。 我不明白为什么模拟器不运行。 任何人都可以弄清楚它为什么不起作用?

将现有的android sdk路径设置为eclipse

我以前使用eclipse Helios进行Android应用程序开发,但现在我已经切换到eclipse kepler。 所以我现在想要的是使用我现有的android sdk在eclipse kepler中使用。 我读了很多post,但他们说去窗口 – >透视 – >选择Android。 问题是我无法在选项卡列表中看到android选项。 所以请告诉我如何在eclipse kepler中设置android sdk文件夹的路径。

Eclipse:在哪里放NDK参考? 原生发展缺失了吗?

我必须将一些c代码与我的Android应用程序集成。 我做了一些研发,并且知道我可以通过NDK (Native Development Kit)来做到这一点。 我下载了NDK并阅读了一些文章,并观看了配置NDK的video,但是在Preferences中的Android节点没有显示Native Development节点来设置NDK参考。 我错过了一些步骤或任何其他问题…请帮助 看我的偏好窗口。

SDK管理员未知主机dl-ssl.google.com

我无法在SDK管理器中更新软件包,它显示下载中断:未知主机dl-ssl.google.com。 我没有使用任何代理,我的Comodo防火墙也被关闭了。 我还尝试使用管理员权限运行SDK。 有谁知道如何解决这个问题? 我已经阅读了很多关于此的post但到目前为止没有任何工作。

在视图下方显示Toast小部件

对于那些早些时候帮助过这个项目的人,非常感谢! 我的代码不再有任何问题,我做了额外的调整。 现在应用程序现在非常强大,我想再做一件事。 在此处查看布局的屏幕截图。 通常,吐司视图显示在屏幕的底部中央。 我想在调用OnClick后使其显示在(8dp)提交按钮下方。 我怎样才能做到这一点。 在这里查看我更新的完整项目 。 package com.lookjohn.guessnumber; import java.util.Random; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { Random random; Button button; EditText text; int input; int MIN, MAX; int comp; int guesses; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); […]