我需要创建占用布局宽度70%的文本字段(线性布局).我用这个代码:
<EditText
android:id="@+id/phone"
android:layout_width="fill_parent"
android:layout_weight=".7"
android:layout_height="wrap_content"
android:inputType="phone" >
Run Code Online (Sandbox Code Playgroud)
问题是,在这种情况下,高度也占布局高度的70% - 但我不需要改变它,只是希望它是"wrap_content".有什么好的解决方案吗?
UPD: 如果我创建一个新的水平线性布局并将我的文本字段放在其中,这会是一个很好的解决方案吗?或者更优雅的东西?
UPD(2): 我希望它看起来如下,但不使用marginLeft和marginRgiht,这将在不同的屏幕分辨率上给出不同的百分比

如何在组项目之间添加间隙(比方说20dp)ExpandableListView?我有自定义组布局RelativeLayout作为父级.向父母添加边距并没有帮助.
这是我与服务器通信的异步方法:
public static Task<bool> ValidateEmail(string email)
{
var url = ServerBase + Resources + Authorization + "check_existence";
var queryString = SerializationHelper.CreateQueryString(new Dictionary<object, object> {{"email", email}});
try
{
return
HttpHelper.PostAsync(url, queryString, null).ContinueWith(
json => SerializationHelper.DeserializeValidationResponse(json.Result));
} catch (Exception e)
{
return TaskErrorHelper.Error<bool>(e);
}
}
Run Code Online (Sandbox Code Playgroud)
DeserializeValidationResponse未捕获序列化服务器响应(来自方法)时抛出的异常.我究竟做错了什么?
UPD:TaskErrorHelper.Error代码:
internal static Task<T> Error<T>(Exception e)
{
var tcs = new TaskCompletionSource<T>();
tcs.SetException(e);
return tcs.Task;
}
Run Code Online (Sandbox Code Playgroud) 我正在开发Android应用程序并SignalR在我的asp.net服务器和自定义Java客户端SignalA上使用.我遇到以下问题:当客户端加入某个组时,它不会收到加入后立即发送的消息.这是服务器的一段代码:
Task.Factory.StartNew(() => context.Groups.Add(groupId, connectionId)).
ContinueWith(t => Groups.Send(groupId, message));
Run Code Online (Sandbox Code Playgroud)
在客户端,我收到一个带有新组令牌的回调,但是没有收到第一个发送的消息(但是接收到后来发送的消息).与官方C#客户端尝试相同的工作非常有效.因此,似乎在处理新组令牌之前收到第一条消息.
经过长时间尝试比较C#和java客户端代码我还没有找到解决方案.我正在寻找关于如何在C#客户端中处理这种情况的解释(或代码引用),这样我就能够在java客户端中实现相同的逻辑.
PS如果有一种方法可以使用官方的C#客户端而不是使用自定义的Java客户端,那么它会更加轻松.
PPS有一些"脏"方法来解决我的问题,比如在加入群组或从客户端发送确认消息后在服务器上稍微延迟,但我仍然在寻找"干净"修复.