两个主要问题是:
getVariable("variableName")会查找变量并返回它,如果不存在具有此名称的变量,则返回null.所以更明确一点:如果我不知道我的ViewDataBinding的类型,是他们获取变量的方法还是我必须知道它的类型?
以下是它的实际工作方式:
<layout>
<data>
<variable
android:name="myVaribale"
android:type="String"/>
</variable>
</data>
<RelativeLayout
android:id="@+id/root_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@{myVariable}"/>
</RelativeLayout>
<layout>
Run Code Online (Sandbox Code Playgroud)
我给它的ViewDataBinding实例充气:
MyLayoutBinding binding = (MyLayoutBinding) DataBindingUtil.inflate(inflater, R.layout.my_layout, root, false); 我可以通过调用适当的方法来获取它的变量:
String myVariable = binding.getMyVariable(); 因此,这是如何让一个变量时,我们知道是什么类型的的ViewDataBinding.
我的问题在这里:
让我们想象一下我有3个布局叫my_layout_1,my_layout_2,my_layout_3和那些3个布局被包围<layout>标记.这3个布局也有相同的变量(myVariable).
所以这里是布局:
my_layout_1
<layout>
<data>
<variable
android:name="myVariable"
android:type="String"/>
</variable>
</data>
<RelativeLayout
android:id="@+id/root_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent" …Run Code Online (Sandbox Code Playgroud) 是否可以有2个应用程序模块(apply plugin: 'com.android.application'位于它们的gradle文件的开头),并且其中一个模块依赖于另一个模块?
因此,模块A将依赖于模块B,并且两者都是应用程序。
dependencies {
...
compile project(':moduleB')
}
Run Code Online (Sandbox Code Playgroud)
我可以轻松地添加此依赖项,并且没有错误/警告出现,但是我仍然无法访问moduleB中的源文件。Android Stduio仍然建议我“将依赖项添加到moduleB”,当我这样做时,仅重新同步gradle并没有任何反应。
我试图包括对库模块的依赖关系,并且工作正常。我们不能在两个(更多)应用程序模块之间添加依赖项吗?
我有时会得到一个Exception并带有以下消息:
在Fragment附加到FragmentManager之前,不能执行onGetLayoutInflater()
我的完整堆栈跟踪(使用CompositeAndroid作为父片段):
Fatal Exception: java.lang.IllegalStateException: onGetLayoutInflater() cannot be executed until the Fragment is attached to the FragmentManager.
at android.support.v4.app.Fragment.getLayoutInflater(Fragment.java:1151)
at com.pascalwelsch.compositeandroid.fragment.CompositeFragment.super_getLayoutInflater(CompositeFragment.java:1310)
at com.pascalwelsch.compositeandroid.fragment.FragmentDelegate$7.call(FragmentDelegate.java:204)
at com.pascalwelsch.compositeandroid.fragment.FragmentDelegate$7.call(FragmentDelegate.java:197)
at com.pascalwelsch.compositeandroid.fragment.FragmentPlugin.getLayoutInflater(FragmentPlugin.java:149)
at com.pascalwelsch.compositeandroid.fragment.FragmentPlugin.getLayoutInflater(FragmentPlugin.java:1269)
at com.pascalwelsch.compositeandroid.fragment.FragmentDelegate$7.call(FragmentDelegate.java:202)
at com.pascalwelsch.compositeandroid.fragment.FragmentDelegate$7.call(FragmentDelegate.java:197)
at com.pascalwelsch.compositeandroid.fragment.FragmentDelegate.getLayoutInflater(FragmentDelegate.java:208)
at com.pascalwelsch.compositeandroid.fragment.CompositeFragment.getLayoutInflater(CompositeFragment.java:163)
at android.support.v4.app.Fragment.onGetLayoutInflater(Fragment.java:1101)
at com.pascalwelsch.compositeandroid.fragment.CompositeFragment.super_onGetLayoutInflater(CompositeFragment.java:1710)
at com.pascalwelsch.compositeandroid.fragment.FragmentDelegate$32.call(FragmentDelegate.java:769)
at com.pascalwelsch.compositeandroid.fragment.FragmentDelegate$32.call(FragmentDelegate.java:762)
at com.pascalwelsch.compositeandroid.fragment.FragmentPlugin.onGetLayoutInflater(FragmentPlugin.java:528)
at com.pascalwelsch.compositeandroid.fragment.FragmentPlugin.onGetLayoutInflater(FragmentPlugin.java:1456)
at com.pascalwelsch.compositeandroid.fragment.FragmentDelegate$32.call(FragmentDelegate.java:767)
at com.pascalwelsch.compositeandroid.fragment.FragmentDelegate$32.call(FragmentDelegate.java:762)
at com.pascalwelsch.compositeandroid.fragment.FragmentDelegate.onGetLayoutInflater(FragmentDelegate.java:773)
at com.pascalwelsch.compositeandroid.fragment.CompositeFragment.onGetLayoutInflater(CompositeFragment.java:538)
at android.support.v4.app.Fragment.performGetLayoutInflater(Fragment.java:1132)
at android.support.v4.app.Fragment.getLayoutInflater(Fragment.java:1117)
at com.my.app.features.event.EventDetailFragment.attachHeader(EventDetailFragment.java:66)
...
Run Code Online (Sandbox Code Playgroud)
我们在这里可以看到,我们首先getLayoutInflater()在第1117行调用该方法,然后在第1151行调用该方法.
第一个就是这个:
/**
* Returns the cached LayoutInflater used to inflate …Run Code Online (Sandbox Code Playgroud) 这篇文章可能是重复的,但我想做的是制作一个浮动动作按钮(FAB)(来自设计支持库),黑色背景和边框与我的主要颜色颜色相同.
我已经阅读了这个问题所示的@vipul_asri的答案.
但是,当我将"透明"颜色替换为黑色(或任何其他颜色)时,这会将我的FAB的背景更改为backgroundTint也没有边框的颜色.
将边框放在FAB按钮上是否很难?有谁知道怎么可能实现这个目标?
提前感谢您的回答.
我试图绑定我的视图的宽度和高度,但我看不出问题出在哪里.
我发现这个谷歌问题
要为您的应用程序实现这些,请创建绑定适配器:
Run Code Online (Sandbox Code Playgroud)@BindingAdapter("android:layout_width") public static void setLayoutWidth(View view, int width) { LayoutParams layoutParams = view.getLayoutParams(); layoutParams.width = width; view.setLayoutParams(layoutParams); }
所以我创建了我的绑定适配器,如下所示:
public class SimpleBindingAdapter {
@BindingAdapter("android:layout_width")
public static void setLayoutWidth(View view, int width) {
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.width = width;
view.setLayoutParams(layoutParams);
}
@BindingAdapter("android:layout_height")
public static void setLayoutHeight(View view, int height) {
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.height = height;
view.setLayoutParams(layoutParams);
}
//Others methods...
}
Run Code Online (Sandbox Code Playgroud)
然后尝试设置我的宽度和高度,如下所示:
<View
android:layout_width="@{paramsMessage.width}"
android:layout_height="@{paramsMessage.height}"
... />
Run Code Online (Sandbox Code Playgroud)
其中paramsMessage.width是一个public int属性.
但我得到这个错误:
引起:java.lang.RuntimeException:二进制XML文件行#25:您必须提供layout_width属性.在android.view.View.View的View.Avray.View.View.St上的android.content.res.TypedArray.getLayoutDimension(TypedArray.java:607)以及android.view.ViewGroup $ $ MarginLayoutParams.(ViewGroup.java:6930)在android.widget.RelativeLayout $ …
我重写了我的问题:
我正在使用Kartick DatePicker来显示日期选择器.在这个日期选择器上,我想使用javascript禁用日期.这是我有的:
<?= DatePicker::widget([
'name' => 'mydate',
'language' => 'fr',
'clientOptions' => [
'autoclose' => true,
'format' => 'dd-M-yyyy'
]
]);?>
Run Code Online (Sandbox Code Playgroud)
随着JS:
$(function(){
$("#w0").datepicker("setDatesDisabled", ['25-08-2017']);
});
Run Code Online (Sandbox Code Playgroud)
我试图将日期的格式更改为2017/08/25或08/25/2017但在任何情况下都不会在日志中显示任何内容.
我也尝试使用kvDatepicker()而不是,datepicker()但这给了我
未捕获的TypeError:$(...).kvDatepicker不是函数
这里有什么问题的任何线索?谢谢.
我想从一个存储库中挑选多个提交到另一个。我按照此 Stack Overflow 帖子中提供的说明进行操作:
/path/to/2 $ git --git-dir=/path/to/1/.git format-patch --stdout sha1^..sha1 | git am -3
Run Code Online (Sandbox Code Playgroud)
并且发生了冲突:
Applying: commit-name-xxx
fatal: sha1 information is lacking or useless (path/to/conflicted/file).
error: could not build fake ancestor
Patch failed at 0001 commit-name-xxx
The copy of the patch that failed is found in: .git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, …Run Code Online (Sandbox Code Playgroud) 我试着在上面显示一些文字PDF document.此文本可能很长或很短,但应该在一行上.这就是我选择TextViewCompat.setAutoSizeTextTypeWithDefaults实用程序方法的原因,但是在绘制时它似乎不起作用canvas.文本被裁剪而不是减少.
这是我的代码:
PageInfo startingPageInfo = new Builder(STANDARD_PDF_PAGE_WIDTH, STANDARD_PDF_PAGE_HEIGHT, 1).create();
final Page startingPage = document.startPage(startingPageInfo);
Canvas canvas = startingPage.getCanvas();
canvas.save();
final TextView documentTitle = new TextView(this);
TextViewCompat.setAutoSizeTextTypeWithDefaults(documentTitle, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);
documentTitle.setLines(1);
documentTitle.setText(String.format("%s - %s", category.getName(), period));
documentTitle.setTextSize(TypedValue.COMPLEX_UNIT_SP, 56);
documentTitle.setTypeface(null, BOLD);
documentTitle.setTextColor(Color.BLACK);
int measuredWidth = MeasureSpec.makeMeasureSpec(canvas.getWidth() - 100, MeasureSpec.EXACTLY);
int measuredHeight = MeasureSpec.makeMeasureSpec(100, MeasureSpec.EXACTLY);
documentTitle.measure(measuredWidth, measuredHeight);
documentTitle.layout(0, 0, measuredWidth, measuredHeight);
canvas.translate(titleDx, titleDy);
documentTitle.draw(canvas);
Run Code Online (Sandbox Code Playgroud)
我对Android内部的自定义视图感到不舒服,所以我可能在这里做错了,任何帮助都会受到赞赏.
该问题已根据 @Kaddath 的好建议进行了编辑,以强调排序不必按字母顺序排列,而是取决于数组内项目的位置。
我有一个数组数组,其中每个数组都基于给定的顺序,但它们可能略有不同。
例如,基本排序是X -> D -> H -> B,这是我的数组:
const arrays = [
['X', 'D', 'H', 'B'],
['X', 'D', 'K', 'Z', 'H', 'B', 'A'],
['X', 'M', 'D', 'H', 'B'],
['X', 'H', 'T'],
['X', 'D', 'H', 'B']
]
Run Code Online (Sandbox Code Playgroud)
我想将所有数组合并为一个数组并删除重复项,但保持排序。在我的示例中,结果将是['X', 'M', 'D', 'K', 'Z', 'H', 'T', 'B', 'A'].
在示例中,我们可以看到M位于第三个数组之间X和内部,并且它被放置在最终输出中和之间。DXD
我知道可能会出现冲突,但这里有以下规则:
到目前为止我所做的是将所有这些数组合并为一个数组,方法是使用
const merged = [].concat.apply([], arrays);
Run Code Online (Sandbox Code Playgroud)
然后使用/sf/answers/110906421/中的代码片段获取唯一值: …
我尝试在我的GitLab帐户中添加一个ssh密钥,以便通过npm使用它.
我在https://docs.gitlab.com/ee/ssh/之后添加了我的密钥.
ssh -T git@gitlab.com
Run Code Online (Sandbox Code Playgroud)
工作正常并发送消息欢迎使用Gitlab,用户名.
但是ssh -T ssh://git@gitlab.com没有工作,并给我这个错误信息:
权限被拒绝(publickey).
当我npm install在我的节点项目上运行时,我将节点模块作为依赖项添加到package.json文件中,它返回以下错误:
npm ERR! Error while executing:
npm ERR! /usr/bin/git ls-remote -h -t ssh://git@gitlab.com/myproject/myproject.git
npm ERR!
npm ERR! Permission denied (publickey).
npm ERR! fatal: Could not read from remote repository.
npm ERR!
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
npm ERR!
npm ERR! exited with error code: 128
Run Code Online (Sandbox Code Playgroud)
我在里面添加了我的依赖package.json …
android ×6
javascript ×2
arrays ×1
border-color ×1
command-line ×1
datepicker ×1
dependencies ×1
git ×1
git-am ×1
gradle ×1
jquery ×1
module ×1
ssh ×1
textview ×1
width ×1
yii2 ×1