我有一个带有TabLayout的AppBarLayout,该片段位于具有工具栏的Activity中.但是工具栏和TabLayout之间出现了一个空格,我不知道它来自哪里.
fragment_packs.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="studio.com.archeagemanager.EventosFragment">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="studio.com.archeagemanager.PacksFragment">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:tabGravity="fill"
app:tabMode="fixed"
app:tabTextColor="#ffffff" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
PacksFragment.java
public class PacksFragment extends Fragment {
public PacksFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_packs, container, false);
AppBarLayout appBarLayout = (AppBarLayout) view.findViewById(R.id.appbar); …
Run Code Online (Sandbox Code Playgroud) 我正在使用python regex库解析一些字符串,目前我发现我的regex太复杂或正在搜索的字符串太长。
这是挂断的示例:
>>> import re
>>> reg = "(\w+'?\s*)+[-|~]\s*((\d+\.?\d+\$?)|(\$?\d+\.?\d+))"
>>> re.search(reg, "**LOOKING FOR PAYPAL OFFERS ON THESE PAINTED UNCOMMONS**") #Hangs here...
Run Code Online (Sandbox Code Playgroud)
我不确定发生了什么。任何帮助表示赞赏!
编辑:这是与我要匹配的示例的链接:Regxr
我正在编写一个自定义脚本,其中包含我所有常用的设置和功能。其中一个函数采用时间戳并使用 Moment 返回具有自定义格式的人类可读日期。
我的自定义脚本位于该node_modules
文件夹中,并且该文件被调用settings.js
。现在,我知道我可以使用以下命令将其包含在任何脚本的顶部
var settings = require('settings.js);
并通过以下方式获取我的功能
settings.timestamp_to_date(timestamp,function(date){console.log(date})
我不知道包含附加模块(时刻和时刻时区)的最佳位置。我现在将它们放在函数调用中,这样它们就不会加载到每个需要该settings.js
文件的应用程序上。我的想法是,它不会将该模块加载到不需要它的应用程序的内存中。
不过,这让我想知道,对于可能经常使用此功能的应用程序,每次运行该功能时都需要模块,这本身似乎是一个糟糕的选择。
通过将所有功能放在一个文件中,并仅在特定应用程序需要时加载该功能所需的模块,哪个是完成我所追求的目标的最佳选择?
如果这意味着在每个应用程序中我必须在包含之前声明我要使用哪些模块,settings.js
那么这并不理想。到目前为止,我的应用程序只是为我自己学习应用程序。我目前创建的任何内容都不会被很多人使用。
对于低使用率应用程序来说最好的选择是什么,对于可能在生产环境中高使用率的应用程序来说最好的选择是什么?
基本上,我需要做这个,但是在Python而非JavaScript.我从socketio连接接收到base64编码的字符串,将其转换为uint8并对其进行处理,然后需要将其转换为base64字符串,以便我可以将其发回.
所以,到目前为止,我已经得到了这个(我data
从socketio服务器获取字典):
import pickle
import base64
from io import BytesIO
from PIL import Image
base64_image_string = data["image"]
image = Image.open(BytesIO(base64.b64decode(base64_image_string)))
img = np.array(image)
Run Code Online (Sandbox Code Playgroud)
我如何扭转这个过程从img
回到base64_image_string
?
更新:
我已通过以下方式解决了这个问题(从上面的代码片段继续):
pil_img = Image.fromarray(img)
buff = BytesIO()
pil_img.save(buff, format="JPEG")
new_image_string = base64.b64encode(buff.getvalue()).decode("utf-8")
Run Code Online (Sandbox Code Playgroud)
有点令人困惑,new_image_string
不一样,base64_image_string
但是new_image_string
看起来相同的图像,所以我很满意!
考虑以下功能:
void foo(){
//do something
}
Run Code Online (Sandbox Code Playgroud)
在组装时,它看起来像这样(不准确):
push something
;do stuff
pop something
ret
Run Code Online (Sandbox Code Playgroud)
但是我不想要这个生成的代码(RET,PUSH,POP ...)。我只想在代码块上加上标签,所以我必须返回自己:
void bar(){
//do something
asm("iret") //i want to use this function as a ISR
}
Run Code Online (Sandbox Code Playgroud)
并在组装中看起来像这样:
; do something
iret
Run Code Online (Sandbox Code Playgroud)
没有PUSH,POP或RET。是否有任何预处理器指令或关键字可以帮助我完成此任务?
我正在Windows下使用GCC和NASM,并且试图生成自己的中断服务例程(ISR)。
我想放弃在 Android Studio 项目中所做的本地更改。
我尝试执行拉取,GUI 给了我 5 个选项,我应该选择哪个选项?
我有一个旧的Gradle项目,我最近使用新的IDEA 2017打开了,我刚刚注意到它不会再停在断点上了(这些是活动的,但没有"验证" - 没有勾选它们.
代码在本地运行(没有任何选项的gradle run/debug配置)bootRun
作为gradle任务.
我已经尝试了Invalidate Caches/Restart但没有成功.我也尝试在IDEA中重新导入项目.
前段时间我升级到Spring 1.4.5之后遇到了同样的问题(如果我没记错的话).我无法弄清楚为什么,所以我降级回1.4.2并且一切正常.但是,这次我正在运行Spring 1.2.4并且我无法在不更改某些代码的情况下升级到更新版本(我还不想要)
我有一个带有after_update
回调的Rails对象,它将记录发送到队列.问题是我注意到有时队列的处理速度比对象实际更新的速度要快.
我的问题:after_update
在对象更新结束后调用,但是在它开始时?如果我想在更新成功后再做一些事情,我需要什么回调?
我尝试使用whereHas和 eloquent进行查询。查询是这样的:
$projects = Project::whereHas('investments', function($q) {
$q->where('status','=','paid');
})
->with('investments')
->get();
Run Code Online (Sandbox Code Playgroud)
我使用 Laravel 5.2 并使用 Postgres 驱动程序。
项目模型为:
public function investments()
{
return $this->hasMany('App\Investment');
}
Run Code Online (Sandbox Code Playgroud)
投资模式有:
public function project() {
return $this->belongsTo('App\Project');
}
Run Code Online (Sandbox Code Playgroud)
项目表有字段 id、字段...
投资表包含字段 id、project_id、status、created_at
我的问题是,查询运行并返回至少有一项投资的项目集合,但是whereHas内的where子句被忽略,因为生成的集合包含状态值不同于paid 的投资。
有人知道发生了什么事吗?
任何人都可以检查是否有错误,因为我总是收到错误
com.google.firebase.database.DatabaseException:找到两个对属性具有冲突区分大小写的getter或字段.
这是我的代码signupTeacherActivity:
public class signupTeacher extends AppCompatActivity {
EditText userfirstname,userlastname, useremail,userpassword,userconfirmpassword, CV,city;
private DatabaseReference mDatabase;
private FirebaseAuth mAuth;
Spinner spinner;
String defaultuserprofileimg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup_teacher);
getSupportActionBar().setTitle("Sign Up");
findViewByIds();
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.subject_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
public void signUpUser(View view) {
if(useremail.getText().toString().length()==0 || userpassword.getText().toString().length()==0||userfirstname.getText().length()==0 ||userconfirmpassword.getText().length()==0 ||userlastname.getText().length()==0){
Toast.makeText(signupTeacher.this, "Please enter all the fields to proceed further.",
Toast.LENGTH_SHORT).show();
}else {
if(spinner.getSelectedItem().toString().equals("Select a Subject")){
Toast.makeText(signupTeacher.this, "Please select a valid Subject.", Toast.LENGTH_LONG).show();
}
else {
mAuth = …
Run Code Online (Sandbox Code Playgroud)