作为一般规则,一切正常,但有时Eclipse或我的Android模拟器决定是一个混蛋并拒绝工作.
我在Eclipse中打开AVD Manager.我选择了我想要的AVD,然后单击"开始".模拟器启动并通过loooong引导过程.它最终完成启动,然后由于某种原因,它立即重新启动并再次启动looong进程.一旦它第二次启动,Eclipse就会失去它的踪迹.它不再是"设备"选项卡中的列表,我无法安装我的应用程序或在该模拟器上运行它.如果我杀死模拟器并尝试重新启动它,那么我会得到完全相同的行为.令人难以置信的是令人沮丧.
控制台中没有消息来解释行为.知道为什么会这样吗?
我在ScrollView中有一个LinearLayout(内容视图容器).我希望LinearLayout的最小高度为"match_parent",但如果内容高于父级,那么我希望LinearLayout能够"wrap_content".
我的LinearLayout有一个平铺的背景图像,使它看起来像背景是黄色的合法垫.但是,如果LinearLayout中的内容很短,那么我在屏幕底部有一个黑色空白部分,因为LinearLayout只是包装内容.
我希望黄色的法律垫背景覆盖整个屏幕,但我不能把它放在ScrollView上,因为那时背景不会随着内容滚动.我不希望内容浮在垫子上面,我希望它们固定在一起.
有没有办法实现这个目标?
编辑:
进一步的研究...... ScrollView和LinearLayout都是683px高,因此它们都是相同的尺寸,这很好.但问题是它们都应该是766px高(前一个片段的大小正被这个片段取代).
我正在使用Google的javascript可视化库生成一个BarChart.我想使图表中的条形图比现在更宽,但我在文档中找不到任何显示如何配置每个数据集的条形宽度的内容.
有帮助吗?
虽然底层的 startActivityForResult() 和 onActivityResult() API 在所有 API 级别的 Activity 类上都可用,但强烈建议使用 AndroidX Activity 1.2.0-alpha02 和 Fragment 1.3.0-alpha02 中引入的 Activity Result API。
我想让我的用户从我的应用程序中拍摄照片并将该照片数据返回到我的应用程序。我打算使用旧的 startActivityForResult() 但是这个新方法看起来可以解决很多问题并且更可靠,所以我想试一试。我应该能够调用registerForActivityResult()
并传递一个内置的合约来拍摄一张名为ActivityResultsContracts.TakePicture的照片:
this.registerForActivityResult(new ActivityResultContracts.TakePicture(), ...);
Run Code Online (Sandbox Code Playgroud)
但我得到: error: package ActivityResultContracts does not exist
我已将此添加到我的 app/build.gradle 中:
// original include
//implementation 'androidx.appcompat:appcompat:1.1.0'
// suggestion from Google documentation
//implementation 'androidx.appcompat:appcompat:1.2.0-alpha02'
// AndroidStudio suggested a newer version was available
implementation 'androidx.appcompat:appcompat:1.2.0-beta01'
Run Code Online (Sandbox Code Playgroud)
我尝试了alpha02
和beta01
并且它们似乎都没有文档中提到的类。
当我尝试在我的 java 文件顶部手动导入类时,AndroidStudio 也不认为该包存在。应该是androidx.activity.result.contract.ActivityResultContracts.TakePicture
,但这是我看到的:
如果这很重要,我正在使用 gradle 3.5.3。(每当我尝试升级到最新的 gradle …
我正在将In App Purchase添加到我的某个应用中.根据需要,我添加了一个按钮,让用户重新下载购买的商品.以下是IBAction方法:
- (IBAction)touchedButtonUnlockAgain:(id)sender {
[self.activityIndicator startAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}
Run Code Online (Sandbox Code Playgroud)
当我点击此按钮时,我会得到标准登录框.我输入我的Sandbox用户名和密码(正确,已验证).在登录框消失后,它会在半秒后重新出现.因此,我使用相同的用户名和密码(正确,已验证)再次登录,然后重新下载购买.我已经验证它发生在模拟器和设备上(两种情况下都是iOS 6.0).
为什么我两次被提示输入用户名/密码?
我正在努力为我的应用添加对平板电脑大小屏幕的支持.我已经在drawable-mdpi和drawable-hdpi中有不同密度屏幕的图像.我的问题是像Galaxy 7这样的平板电脑,它是一个"大屏幕",但仍然是中等密度.我的部分布局在屏幕宽度上有5个按钮均匀分布.在大屏幕上有mdpi图形虽然图像非常小,它们之间有大量的空白.
我想在大型布局中使用更大的图形,使它们看起来合适,并利用屏幕空间.我的hdpi目录中有一些双倍大小的图形可以完美地工作.作为测试,我将/ res/drawable-hdpi中的所有图像复制到/ res/drawable-large-mdpi中,所有内容都看起来完全符合我的要求.
但是,我不希望通过处理所有这些图像来扩大我的应用程序的大小.我想为它们中的每一个创建别名,这样当请求/ res/drawable-large-mdpi/button_0时,它实际上将使用/ res/drawable-hdpi/button_0.
我已经尝试创建一个xml位图,但我不知道如何从特定目录引用drawable.有帮助吗?
/res/drawable-large-mdpi/button_0.xml的内容:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable-hdpi/button_0" />
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
error: Error: No resource found that matches the given name (at 'src' with value '@drawable-hdpi/button_0_highlighted').
Run Code Online (Sandbox Code Playgroud) 有没有办法将自定义操作添加到UIDocumentInteractionController提供的操作列表中?
我想在列表中添加"电子邮件"操作.我知道我可以使用MFMailComposeViewController发送带附件的电子邮件,但问题不在于如何将文件作为附件发送,问题是UI之一.我有一个"行动"的UIBarButtonItem带来了UIDocumentInteractionController提供在iBooks的印刷和开放的选项.太棒了...但我还需要一个单独的UIBarButtonItem来发送附加到电子邮件的文件.用户看到这样的东西有点令人困惑:
这不仅仅是让用户感到困惑,更不是理想的用户界面.最好将"Email"作为UIDocumentInteractionController列表中的一个选项.
有什么建议?
肯尼
我的Android菜单有图标.在Android 3+上我使用的是黑色ActionBar,因此图标为白色.但是,在Android 2.x上,菜单本身就是白色,这意味着图标几乎不可见.如何为不同版本使用不同的菜单图标?我假设我可以用不同的绘制目录,如RES /提拉 - MDPI-V11做到这一点,但我不知道是否有另一种方式,所以我不必创建一堆不同的目录,因为我添加版本或像素密度.
编辑:我把在res /绘制-MDPI和RES /提拉 - 华电国际对采用Android 2.X使用深色版本,我把在res光版本/提拉 - MDPI-V11和RES /提拉 - HDPI-V11配合Android应用3.x和更高,但我的Android 2.1(sdk 7)模拟器仍然显示轻量版本.
知道为什么吗?
我的应用程序使用UINavigationController,但我没有显示工具栏,因为我的所有导航都是由游戏内控件控制的.
我没有Tab栏,因为我没有使用TabBarController.
我的游戏应用程序仅限景观.
这是我之前创建和呈现UIActionSheet的方式:
UIActionSheet *quitGameSheet = [[UIActionSheet alloc]
initWithTitle:@"Quit your game?"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"Yes, quit game"
otherButtonTitles:nil];
[quitGameSheet showInView:self.view];
Run Code Online (Sandbox Code Playgroud)
但是,UIActionSheet主要是屏幕外的,我收到此错误:
Presenting action sheet clipped by its superview. Some controls might not respond to touches. On iPhone try -[UIActionSheet showFromTabBar:] or -[UIActionSheet showFromToolbar:] instead of -[UIActionSheet showInView:].
Run Code Online (Sandbox Code Playgroud)
但是,我没有工具栏,也没有tabbar.
我已经尝试了其他几个Stack Overflow答案,但这些答案都不适用于我:
我尝试从self.parentViewController.view中的self.navigationController.view,从我在视图底部创建的CGRect,self.view.bounds中呈现它,因为我很绝望..没有一个适用于我.
它适用于iOS 6,但在iOS 7中不起作用.以下是在iOS 6上工作并在iOS 7上失败的几个屏幕截图.
有帮助吗?
更新1 ---
这是一个请求的视图层次结构:
<UIView: 0xc480380; frame = (0 0; 568 320); autoresize = RM+BM; layer = <CALayer: 0xc4803e0>>
| <UIImageView: 0xc480410; frame …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在应用程序上进行一些基本的日志记录.我把一些NSLog()
s 扔进了我的代码,但是没有任何东西被打印到下面的Xcode控制台.字面上没什么,甚至没有应用程序启动时的一些启动信息等.
我已经将我的Xcode控制台设置为显示,All Output
并且我已经打开了变量检查器和控制台:
我听说过Logging更改,并且引入了一个新的Console.app,它可以让我查看模拟器上的日志,所以我想也许日志会显示在那里,但是当我这样做时会发生很多系统消息我没有看到我正在制作的NSLog().
我错过了什么吗?我需要翻新一个新设置吗?我在哪里可以看到我的NSLog()?
编辑:
我是用iOS 11模拟器做的,没有控制台输出.当我切换到iOS 9模拟器时,我得到了所有的控制台输出.