假设我有一个垂直linearLayout:
[v1]
[v2]
Run Code Online (Sandbox Code Playgroud)
默认情况下,v1具有visibily = GONE.我想用扩展动画展示v1并同时向下推v2.
我试过这样的事情:
Animation a = new Animation()
{
int initialHeight;
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
final int newHeight = (int)(initialHeight * interpolatedTime);
v.getLayoutParams().height = newHeight;
v.requestLayout();
}
@Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
initialHeight = height;
}
@Override
public boolean willChangeBounds() {
return true;
}
};
Run Code Online (Sandbox Code Playgroud)
但是使用这个解决方案,动画开始时我会闪烁.我认为这是由v1在应用动画之前显示完整大小引起的.
使用javascript,这是一行jQuery!用android做任何简单的方法吗?
我正在调用REST API并且正在接收XML响应.它返回一个工作区名称列表,我正在编写一个快速IsExistingWorkspace()方法.由于所有工作空间都包含没有空格的连续字符,因此我假设最简单的方法是查找列表中的特定工作空间是否删除所有空格(包括换行符)并执行此操作(XML是从Web接收的字符串请求):
XML.Contains("<name>" + workspaceName + "</name>");
Run Code Online (Sandbox Code Playgroud)
我知道它区分大小写,我依靠它.我只需要一种方法来有效地删除字符串中的所有空格.我知道RegEx和LINQ可以做到,但我对其他想法持开放态度.我大多只关心速度.
我正在开发一个内部Web应用程序.在IE10中,请求工作正常,但在Chrome中,所有AJAX请求(有很多)都是使用OPTIONS发送的,而不是我给出的任何定义的方法.从技术上讲,我的请求是"跨域".该站点在localhost:6120上提供,我正在向AJAX请求的服务是在57124. 这个关闭的jquery错误定义了问题,但不是真正的修复.
如何在ajax请求中使用正确的http方法?
编辑:
这是在每个页面的文档加载中:
jQuery.support.cors = true;
Run Code Online (Sandbox Code Playgroud)
每个AJAX都是类似的:
var url = 'http://localhost:57124/My/Rest/Call';
$.ajax({
url: url,
dataType: "json",
data: json,
async: true,
cache: false,
timeout: 30000,
headers: { "x-li-format": "json", "X-UserName": userName },
success: function (data) {
// my success stuff
},
error: function (request, status, error) {
// my error stuff
},
type: "POST"
});
Run Code Online (Sandbox Code Playgroud) 在Angular 1.x中,我有时需要提出多个http请求,并对所有响应做一些事情.我会把所有的promises抛出一个数组并调用Promise.all(promises).then(function (results) {...}).
Angular 2最佳实践似乎指向使用RxJS Observable作为http请求中的承诺的替代.如果我有两个或更多从http请求创建的不同Observable,它们是否相当于Promise.all()?
我已升级为使用路由器弃用的新Angular 2路由器,并且某些行为已更改.
我遇到问题的页面是搜索页面.我们选择使用HashLocationStrategy.将所有搜索字词放在网址中.路线看起来像这样:
const routes: RouterConfig = [
{ path: '', component: HomeComponent },
{ path: 'search/:term/:cat/:page/:sort/:size/:more', component: HomeComponent },
{ path: 'search/:term/:cat/:page/:sort/:size', component: HomeComponent },
{ path: 'search/:term/:cat/:page/:sort', component: HomeComponent },
{ path: 'search/:term/:cat/:page', component: HomeComponent },
{ path: 'search/:term/:cat', component: HomeComponent },
{ path: 'search/:term', component: HomeComponent },
{ path: 'details/:accountNumber', component: DetailsComponent }
];
Run Code Online (Sandbox Code Playgroud)
我知道查询字符串方法可能更适合所有这些选项,但项目要求由其他人决定......
无论如何,如果我导航到localhost/#/search/Hello使用,this.router.navigate(['/search/Hello']);那么路由器工作正常,一切都很好.在该页面上,如果我尝试this.router.navigate(['/search/World']);然后浏览器地址栏中的URL将相应更新,但组件根本不会更改.
以前我可以routerCanReuse用来表明我确实想重用搜索组件,并routerOnReuse在导航发生时重新运行搜索.我没有看到与这些相同的东西@angular/router.如何使用新的URL参数重新加载当前路由?
我正在运行Angular 2的2.0.0-rc.3版和@ angular/router的3.0.0-alpha.8版.
我有一个充当搜索栏的组件.它可以使API请求,并经由一个结果提供给应用程序的其余部分@Output和EventEmitter,但我也希望有一个函数来走另一条路.搜索栏组件保留其搜索的历史记录,我想为父组件提供清除历史记录的方法.我能想到的最好的方法是以某种方式从父组件调用我的搜索栏中的方法.
我提出的最好的(但无法正确实现)是尝试传递EventEmitterINTO我的搜索栏,孩子订阅父母的事件.在@Input还没有完成,但这样它变得棘手真正做到这一点的时候构造结合.
我想我可以尝试,并存储在父组件的历史,但原因的搜索栏是一个组件,是因为它会出现在多个地方,这不符合关注点分离适合这样看来最好保持在历史搜索栏组件.
父组件如何在子组件上调用函数?
我已经看过很多WPF Binding示例并且已经在学习MVVM的许多不同地方使用了这个功能,但是对我来说似乎很不一致的是当你在绑定字符串中指定"Path ="时只需简单地说输入要绑定的属性.例如,以下XAML属性之间的功能区别是什么:
DataMemberBinding="{Binding SomeProperty}"
DataMemberBinding="{Binding Path=SomeProperty}"
Run Code Online (Sandbox Code Playgroud) 我有最基本的net/http程序,我用来学习Go中的命名空间:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Println(r.URL)
go HandleIndex(w, r)
})
fmt.Println("Starting Server...")
log.Fatal(http.ListenAndServe(":5678", nil))
}
func HandleIndex(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(200)
w.Write([]byte("Hello, World!"))
}
Run Code Online (Sandbox Code Playgroud)
当我运行程序并连接到localhost:5678Chrome时,我在控制台中得到了这个:
Starting Server...
/
2015/01/15 13:41:29 http: multiple response.WriteHeader calls
/favicon.ico
2015/01/15 13:41:29 http: multiple response.WriteHeader calls
Run Code Online (Sandbox Code Playgroud)
但我不明白这是怎么可能的.我打印URL,启动一个新的goroutine,写一次标题,并给它一个静态的身体Hello, World!似乎正在发生两件事之一.幕后的任何东西都在写另一个标题,或者以某种方式HandleIndex为同一个请求调用两次.我该怎么做才能停止写多个标题?
编辑:它似乎与该go HandleIndex(w, r)行有关,因为如果我删除go并只是使它成为函数调用而不是goroutine,我没有任何问题,浏览器获取它的数据.由于它是goroutine,我得到多个WriteHeader错误,浏览器不显示"Hello World".为什么要把这个打破呢?
我有一些关于endian-ness的问题已经足够相关,我保证将它们作为一个问题加入:
1)字节是由.Net还是由硬件决定的?
2)如果由硬件决定,我怎样才能弄清楚硬件在C#中的端点?
3)endian-ness是否影响二进制交互,如OR,AND,XOR或移位?IE将向右移动一次总是偏离最不重要的位?
4)我对此表示怀疑,但不同版本的.Net框架的字节序有何不同?我假设他们都是一样的,但我已经学会停止假设一些较低级别的细节,比如这个.
如果需要,我可以问这些不同的问题,但我认为任何知道其中一个答案的人可能都知道所有人的答案(或者可以指出我的方向).
移动设备上的Safari和Chrome都会在页面加载时包含可见的地址栏.当body页面滚动时,这些浏览器将滚动地址栏关闭屏幕,为网站提供更多的空间,如下图所示:
我的网站允许这个问题,我遇到了一些问题.我正在制作一个Pokedex,其中包含很长的所有口袋妖怪列表.但是,通过我设置页面的方式,它不希望将地址栏滚动到视线之外.
我的HTML看起来像:
<body>
<app> <!-- My Angular2 tag for the app, no special styles for this -->
<nav>...</nav> <!-- The red nav bar and hamburger menu, default bootstrap -->
<div class="fluid-container">...</div> <!-- The container for all pokemon entries -->
</app>
</body>
Run Code Online (Sandbox Code Playgroud)
如果我滚动到列表的绝对底部(即721个条目),则再滚动会将地址栏移动到屏幕顶部.如果我触摸导航栏并将其向上拖动,则地址栏将移出屏幕.这两种方法似乎都不直观.
我想有一些方法我使用javascript滚动页面的主体将隐藏它,但到目前为止我尝试过的东西不起作用.当我这样做时,没有发生可见的滚动.
如何在页面加载后立即滚动页面以隐藏移动浏览器的地址栏?
编辑:我越是研究这个,没有用户交互就越不可能.如果我需要用户交互,用户在屏幕中心的触摸是否可能首先尝试滚动主体,然后尝试滚动包含其中所有条目的div?如果按照我想的方式工作,那么它会先滑动地址栏,然后再滑过列表.这与默认的浏览器行为相反,所以它可能不可能/简单/可靠,但我愿意尝试看看是否有任何想法.
angular ×2
c# ×2
javascript ×2
address-bar ×1
ajax ×1
android ×1
angularjs ×1
animation ×1
cross-domain ×1
data-binding ×1
endianness ×1
go ×1
http ×1
jquery ×1
observable ×1
rxjs ×1
server ×1
wpf ×1
xaml ×1