我有一个显示ListView的Activity.ListView中的项目中包含EditText字段,因此当他们点击文本字段时,虚拟键盘会滑入视图.它覆盖了ListView,因此您无法看到键盘背后的项目.
我已将该Activity的Manifest配置为adjustResize:
<activity android:name=".StatisticalActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize"
>
Run Code Online (Sandbox Code Playgroud)
..但是在显示键盘时没有调整大小.
这是我活动的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<RelativeLayout
android:id="@+id/toolbar"
android:layout_width="fill_parent"
android:layout_height="40sp" android:paddingLeft="4dp" android:background="@drawable/toolbar_gradient" android:paddingRight="6dp">
...
</RelativeLayout>
<ListView
android:id="@+id/tableView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#333"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在尝试使用AdWhirl和AdMob将广告整合到我的Android应用中.
AdWhirl网站给了我以下代码:
AdWhirlLayout adWhirlLayout = (AdWhirlLayout) findViewById(R.id.layoutAdWhirl);
int diWidth = 320;
int diHeight = 52;
int density = (int) getResources().getDisplayMetrics().density;
int scaledWidth = (int) (diWidth * density);
int scaledHeight = (int) (diHeight * density);
adWhirlLayout.setAdWhirlInterface(this);
adWhirlLayout.setMaxWidth(scaledWidth);
adWhirlLayout.setMaxHeight(scaledHeight);
Run Code Online (Sandbox Code Playgroud)
这在我的一些模拟器上运行得很好,但是当我尝试一些较小或较旧的模拟器时,我在LogCat中收到以下错误:
Not enough space to show ad! Wants: 480, 75, Has: 320, 52
Run Code Online (Sandbox Code Playgroud)
如果我使用他们的代码来请求尺寸合适的广告,我该怎么办,但他们不会展示该广告?
我有一个带纵向的iPad xib的UIViewController.当我的iPad处于横向状态时,我将该视图控制器放入我的UISplitViewController的详细信息窗格中,它会自动调整大小以适应这种情况.
但是,当我在-viewDidLoad中配置视图时,视图的最终大小尚未处于横向/大小.
当UIViewController已经在横向加载时,-didRotateFromInterfaceOrientation:方法和与之关联的其他方法不会被调用,那么我何时何地能够正确设置滚动视图的contentSize及其内容?
我只希望我的滚动视图垂直滚动,所以我想确保我的滚动视图里面内容查看重新适合在任何方向它是在视图控制器的宽度.
无论我检查什么.frame或.bounds,无论是我的视图,我的滚动视图,还是我的SplitViewController的详细视图控制器都显示我的ACTUAL大小.当使用UISplitViewController进行横向渲染时,左侧宽度为320px,这意味着右侧不应超过704px宽,但每当我检查框架以及视图和滚动视图的边界时,它们报告为768px宽这是不正确的.
我的滚动视图只有704px宽,因为我可以正确看到滚动指示器.
我错过了什么?
这是我在-viewDidLoad中的代码......
CGSize textSize = [self.purchase.textDescription sizeWithFont:self.labelTextDescription.font constrainedToSize:allowedSize lineBreakMode:UILineBreakModeWordWrap];
CGRect textFrame = self.labelTextDescription.frame;
textFrame.size.height = textSize.height;
self.labelTextDescription.frame = textFrame;
CGRect contentFrame = self.contentView.frame;
contentFrame.size.height += textSize.height;
if (contentFrame.size.width > self.scrollView.frame.size.width) {
contentFrame.size.width = self.scrollView.frame.size.width;
}
self.contentView.frame = contentFrame;
[self.scrollView addSubview:self.contentView];
self.scrollView.contentSize = self.contentView.frame.size;
Run Code Online (Sandbox Code Playgroud) 我对出了什么问题并不乐观,但我的猜测是它与约束相关。
当我尝试调整 NSWindow 的大小时,我可以毫无问题地将其放大。但是,当我尝试将其缩小时,窗口根本不会改变大小。窗口中很少有元素具有固定大小的约束。总固定宽度只有大约 120,而我的窗口大约有 700 宽,所以我没有遇到固定宽度问题。事实上,如果我将窗口拖动到 800 宽,那么它的最小尺寸变为 800。
我的猜测是,一旦视图的大小增加,他们就不想压缩回来。但这只是一个猜测。
知道如何解决这个问题吗?抱歉,我无法提供任何代码,但我没有涉及任何代码。这只是我的 xib 中的限制。
编辑:
我添加了一个 NSLog[self.window.contentView constraintsAffectingLayoutForOrientation:NSLayoutConstraintOrientationHorizontal]到- (void)windowDidResize:(NSNotification *)notification. 起初,窗口让我将其调整得越来越大,这就是输出的样子:
2015-03-20 17:41:40.097 10bii Financial Calculator[19780:561394] windowDidResize Constraints: (
"<NSAutoresizingMaskLayoutConstraint:0x600000081d10 h=-&- v=-&- H:|-(0)-[NSView:0x618000121400] (Names: '|':NSThemeFrame:0x100902d90'10bii Financial Calculator' )>",
"<NSAutoresizingMaskLayoutConstraint:0x600000081d60 h=-&- v=-&- H:[NSView:0x618000121400]-(0)-| (Names: '|':NSThemeFrame:0x100902d90'10bii Financial Calculator' )>",
"<NSLayoutConstraint:0x6180000856e0 'NSWindow-current-width' H:[NSThemeFrame:0x100902d90'10bii Financial Calculator'(872@500)] priority:500>"
)
Run Code Online (Sandbox Code Playgroud)
然后,经过几次调整大小后,窗口停止允许我将其缩小,这是约束日志的输出:
2015-03-20 17:42:03.506 10bii Financial Calculator[19780:561394] windowDidResize Constraints: (
"<NSAutoresizingMaskLayoutConstraint:0x600000081d10 h=-&- v=-&- H:|-(0)-[NSView:0x618000121400] (Names: '|':NSThemeFrame:0x100902d90'10bii Financial Calculator' )>",
"<NSLayoutConstraint:0x60800008d570 H:|-(0)-[ViewWithBackground:0x608000142c00] (Names: '|':NSView:0x618000121400 …Run Code Online (Sandbox Code Playgroud) 我知道我可以回退到NSStringfunction componentsSeparatedByString,所以这可能是一个挑剔,但我喜欢 Swift 的一件事是它是围绕简洁和简短的语法设计的。
我真的希望我能:var parts = myString.characters.split("${")但该功能仅适用于单个字符,而不适用于两个字符的字符串。我什至尝试过,var parts = myString.characters.split { $0 == "${" }但希望使用单个字符作为分隔符,而不是完整的字符串。:(
是否有我缺少的 api 函数,或者我是否需要坚持使用旧的NSString桥接函数?