小编Wil*_*iam的帖子

视图何时附加和分离?

此问题与如何检测视图是否已附加或分离无关.

一般情况下,何时附加或分离视图?这有生命周期图吗?

为了澄清,我正在寻找以下内容的答案:活动发送到背景,不透明视图放在顶部,可见性设置为GONE,查看膨胀,父级分离等等.这不是一个详尽的列表 - 我只是想了解如何从根本上讲,附加和分离观点是有效的.

更新我想要获得的更多示例:

碎片与活动怎么样?
嵌套视图怎么样 - 附加/分离视图的顺序是什么(parent-> child或child-> parent)?
视图是在附加之前还是之后测量的?
如何手动将addView()用于ViewGroup?

编辑:摘要:

  • 对于活动,视图附在setContentView().视图在使用不同视图调用onDestroy()时或在setContentView()调用时分离.
  • 对于碎片,视图onViewCreated()完成后附加,并在onDestroyView()完成后分离.
  • 对于ViewGroups,视图附加addView()和分离removeView()
  • setVisibility() 不会影响视图的附加状态

android android-view

21
推荐指数
1
解决办法
1万
查看次数

什么是termios.TIOCGWINSZ

我想得到终端的大小.我正在使用此功能:

import sys, struct, fcntl, termios

s = struct.pack('HHHH', 0, 0, 0, 0)
t = fcntl.ioctl(sys.stdout.fileno(), termios.TIOCGWINSZ, s)
print(struct.unpack('HHHH', t))
Run Code Online (Sandbox Code Playgroud)

但到底是termios.TIOCGWINSZ什么?

python

11
推荐指数
1
解决办法
4677
查看次数

C raw socket的sendto地址的用途?

我在Linux机器上通过C中的原始套接字发送一些ping数据包.

int sock_fd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
Run Code Online (Sandbox Code Playgroud)

这意味着我在写入套接字时指定了IP包头(IP_HDRINCL隐含).

写入套接字send失败,告诉我需要指定一个地址.

如果我使用sendto那么它的工作原理.对于sendto我必须指定一个sockaddr_in结构来使用,其中包括场sin_family,sin_portsin_addr.

但是,我注意到了一些事情:

  • sin_familyAF_INET-创建插座时已经指定.
  • sin_port自然是未使用的(端口不是IP的概念).
  • 无论我使用什么地址,只要它是外部地址(IP数据包指定8.8.8.8和sin_addr指定1.1.1.1)都无关紧要.

似乎没有一个额外的字段在sendto很大程度上实际使用.那么,是否存在技术原因导致我必须使用sendtosend不仅仅是API中的疏忽?

c sockets linux ip raw-sockets

8
推荐指数
1
解决办法
2646
查看次数

将subscribeOn与Retrofit一起使用

关于何时以及是否subscribeOn与Retrofit 一起使用存在冲突的信息.

这是一个不使用的答案subscribeOn.
这个答案似乎意味着subscribeOn没有好的默认设置.
这是使用的示例代码subscribeOn.

那么,一劳永逸,何时应该使用subscribeOn和使用什么线程?使用或不使用的可能后果是subscribeOn什么?

apiService.issueRequest()
    // Is this useful? Required? Bad practice?
    .subscribeOn(Schedulers.io())
    // Do actions on main thread
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new Action1<Response>() {
        @Override public void call(Response response) {
            handleResponse(response);
    });
Run Code Online (Sandbox Code Playgroud)

android rx-java retrofit

7
推荐指数
1
解决办法
1301
查看次数

Python - HTTP multipart/form-data POST请求

我想将文件上传到Web服务器.根据我的阅读,最好的方法是在HTTP POST请求中使用multipart/form-data编码类型.

我的研究似乎表明,使用Python标准库没有简单的方法可以做到这一点.我正在使用Python 3.

(注意:查看一个名为requests的请求(PyPI Link)来轻松完成此操作)

我目前正在使用这种方法:

import mimetypes, http.client
boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T' # Randomly generated
for fileName in fileList:
    # Add boundary and header
    dataList.append('--' + boundary)
    dataList.append('Content-Disposition: form-data; name={0}; filename={0}'.format(fileName))

    fileType = mimetypes.guess_type(fileName)[0] or 'application/octet-stream'
    dataList.append('Content-Type: {}'.format(fileType))
    dataList.append('')

    with open(fileName) as f: 
        # Bad for large files
        dataList.append(f.read())

dataList.append('--'+boundary+'--')
dataList.append('')
contentType = 'multipart/form-data; boundary={}'.format(boundary)

body = '\r\n'.join(dataList)
headers = {'Content-type': contentType}

conn = http.client.HTTPConnection('http://...')
req = conn.request('POST', '/test/', body, headers)

print(conn.getresponse().read())
Run Code Online (Sandbox Code Playgroud)

这适用于发送文本.

有两个问题:这只是文本,整个文本文件必须作为一个巨大的字符串存储在内存中.

如何上传任何二进制文件?有没有办法在不将整个文件读入内存的情况下执行此操作?

python python-3.x

5
推荐指数
1
解决办法
1万
查看次数

Android EditText inputType textShortMessage

inputType的目的是textShortMessage什么?这将如何影响我的申请?某些键盘,Android版本或应用程序是否特别对待这种情况,还是仅仅对类型进行处理text

android android-inputtype

5
推荐指数
2
解决办法
3486
查看次数

Python-Mongoengine高级查询列表字段

我有一个列表列表,像这样:

li = [[('A', 'one'), ('A', 'two')], [('B', 'three'), ('B', 'four')]]
Run Code Online (Sandbox Code Playgroud)

并且我需要查询一个mongo数据库,以获取其列表字段在的每个子列表中至少包含一项的所有对象li。例如:具有[('A','one')OR('A','Two')]和[['B','三个')OR('B','四个')]的项目...

我正在使用mongoengine,但是如果我可以使用其他方法来完成此操作,则可能会更改。所以现在我在做很多这样的查询,以避免重复输入:

final = set()
for sublist in li:
    query = Obj.objects(list_field__in=sublist)
    final &= set(query)
Run Code Online (Sandbox Code Playgroud)

问题在于,在处理较大的查询结果时,这非常慢(我认为,使该设置花费很长时间)。有什么办法可以加快速度吗?具体来说,有没有一种方法可以避免从查询结果中创建集合/列表?

我真的很想能够以某种方式写这样的东西:

query = Obj.objects(list_field__in=li[0] AND list_field__in=li[1] AND ...)
Run Code Online (Sandbox Code Playgroud)

编辑:下面的答案不适用于进一步的测试,因为mongoengine不允许 Q(field=x) & Q(field=y)

Edit2:这是我想做的等效mongoDB查询:

db.obj.find({ "$and": [
    {"list_field": {"$in":
        [["A", "one"], ["A", "two"]]
    }},
    {"list_field": {"$in":
        [["B", "three"], ["B", "four"]]
    }}
]})
Run Code Online (Sandbox Code Playgroud)

我可以在mongoengine中做到吗?它不会让我用Q(list_field__in=[('A', 'one'), ('A', 'two')]) | Q(list_field__in=[('B', 'three'), ('B', 'four')])

python listfield pymongo mongoengine

4
推荐指数
1
解决办法
2040
查看次数

在 Python 中创建二维网格

我正在尝试用 Python 创建一个二维数组或列表或其他东西。我对这门语言非常陌生,所以我不知道所有的来龙去脉以及不同的类型或库。

基本上,我有一个列表的方形列表 g,我想转置它(将行变成列,将列变成行)。稍后我将遍历这个列表列表和转置列表列表。在转置列表中,列的顺序并不重要。这是“Python 方式”吗?有没有更快的方法来做到这一点?

我喜欢使用列表,因为我对与我所知道的语言中的数组非常相似的语法感到满意,但如果Python中有更好的方法,我想学习它。

def makeLRGrid(g):
    n = []
    for i in range(len(g)):
        temp = []
        for j in range(len(g)):
            temp.append(g[j][i])
        n.append(temp)
    return n
Run Code Online (Sandbox Code Playgroud)

感谢您提供的任何帮助!

编辑:抱歉造成混乱,显然我的意思是转置,而不是反转!

python list multidimensional-array

2
推荐指数
1
解决办法
4万
查看次数

CSS过渡 - 顺利显示div

这是一个想法:顶部的div默认隐藏,只需按一下按钮就会向下滑动,推送其他内容.再次单击将滑动div再次隐藏,引发其他内容.

HTML

<div id="topDiv" class="hidden">
    Some content<br>
    More very complex content
</div>
<button id="thebutton" onclick="toggle('topDiv');">Toggle the div</button>
<div id="bottomDiv">
    Some content<br>
    More content!<br>
    Even more content!<br>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

div.hidden {
    height: 0px;
}
div {
    height: 400px;
    transition: height 0.5s;
}
Run Code Online (Sandbox Code Playgroud)

使用Javascript

function toggle(someId) {
    var someElem = document.getElementById(someId);
    someElem.className = someElem.className == 'hidden' ? '' : 'hidden';
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是显示我想要隐藏的div的内容.如果我改变了div.hidden,display: none;或者visibility: hidden;我失去了"滑动"效果.

我想有一个不使用jQuery的解决方案.

html javascript css css-transitions

1
推荐指数
1
解决办法
1万
查看次数