我试图以编程方式更改selectable_kachel_shape的颜色.这是xml文件:
kachel_ticked_style.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape
android:id="@+id/selectable_kachel_shape"
android:shape="rectangle" >
<stroke
android:width="5dp"
android:color="@color/headrbar_color" />
</shape>
</item>
<item>
<rotate
android:fromDegrees="45"
android:pivotX="120%"
android:pivotY="100%"
android:toDegrees="45" >
<shape android:shape="line" >
<stroke
android:width="40dp"
android:color="@color/headrbar_color" />
</shape>
</rotate>
</item>
<item
android:right="5dp"
android:top="5dp">
<bitmap
android:gravity="top|right"
android:src="@drawable/selectable_tiles_check" />
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
我在片段内调用以下代码
LayerDrawable layers = (LayerDrawable) this.getActivity().getResources().getDrawable(R.drawable.kachel_ticked_style);
GradientDrawable shape = (GradientDrawable) (layers.findDrawableByLayerId(R.id.selectable_kachel_shape));
shape.setColor(this.getActivity().getResources().getColor(android.R.color.background_dark);
Run Code Online (Sandbox Code Playgroud)
1.为什么我在shape.setColor中设置NullPointerException ?
2.如何以编程方式更改图层内部的形状内的颜色?
我正在开发一个UWP.我正在使用sqlite-net-pcl库.将我的应用程序从RC升级到RTM后,我收到运行时错误 - 无法找到sqlite3.dll - 如果它在Mobile模拟器或设备上运行.在我添加了对C++ 2013 Runtime Package的引用并在Local Machine中运行它之后,它完美地工作了.
例外消息:
消息"'SQLitePCL.raw'的类型初始化程序引发了异常." 串
innerexception消息:
{"无法加载DLL的sqlite3":找不到指定的模块.(HRESULT异常:0x8007007E)"} System.Exception {System.DllNotFoundException}
当然我无法添加对"Sqlite for Universal App Platform"的引用,因为我发现了以下错误
严重性代码说明项目文件行错误有效负载包含两个或多个具有相同目标路径"sqlite3.dll"的文件.源文件:C:\ Program Files(x86)\ Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UAP.2015\3.8.11.1\Redist\Debug\ARM\sqlite3.dll C:\ Users\sMavrikis .nuget\packages\SQLitePCL.raw_basic\0.7.1\build \native\sqlite3_dynamic\winrt81\arm\sqlite3.dll TestApp1
目前我正在使用MvvmCross开发Xamarin Forms Android项目.关于Frame我有一个奇怪的问题.每当我设置OutlineColor时,它仅在iOS中显示,而不在Android中显示.我已尝试使用不同的Xamarin Forms项目,并且两个平台都显示它没有任何问题.我没有任何迹象表明为什么会这样.MvvmCross能否以某种方式与此问题相关?
这是一个示例:
<core:BasePage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:core="clr-namespace:Core.Base.Views;assembly=Core"
x:Class="Views.TestPage"
BackgroundImage="background_secret.png"
Title="Test">
<ContentPage.Content>
<Grid
HorizontalOptions="FillAndExpand"
Padding="12,20,12,20"
VerticalOptions="FillAndExpand">
<Frame
HasShadow="false"
VerticalOptions="Fill"
BackgroundColor="White"
OutlineColor="#1961ac">
<StackLayout>
<Frame
VerticalOptions="Start"
Padding="8,4,8,4"
HasShadow="false"
OutlineColor="#9DB0BB">
<Label Text="Test"></Label>
</Frame>
</StackLayout>
</Frame>
</Grid>
</ContentPage.Content>
</core:BasePage>
Run Code Online (Sandbox Code Playgroud)
Xamarin Forms版本2.1 MvvmCross版本4.1
我发现这个java代码创建了一个通用方法来启动其他活动的任何活动.
public void gotoActivity(Class activityClassReference)
{
Intent i = new Intent(this,activityClassReference);
startActivity(i);
}
Run Code Online (Sandbox Code Playgroud)
如何将该代码转换为c#for xamarin-Android?
提前致谢.
我试图在Xamarin.Forms项目中添加一些图像作为图像集.我按照这个指南.但是不显示图标.实际上是否可以在Xamarin Forms Solution中为iOS项目使用图像集?
<Image VerticalOptions="Center"
HorizontalOptions="End"
Source="check_outline_500_active.png"
WidthRequest="40">
</Image>
Run Code Online (Sandbox Code Playgroud) 目前,我正在使用 SQLite.Net-PCL 3.1.1 对 Xamarin MvvmCross 应用程序进行单元测试。单元测试项目是一个普通的.NET项目。
所以现在我嘲笑MvxSqliteConnectionFactoryBase
public class MockMvxSqliteConnectionFactoryBase : MvxSqliteConnectionFactoryBase
{
#region implemented abstract members of MvxSqliteConnectionFactoryBase
public override string GetPlattformDatabasePath(string databaseName)
{
return "Data Source=:memory:";
}
public override ISQLitePlatform GetCurrentPlatform()
{
return new SQLite.Net.Platform.Generic.SQLitePlatformGeneric();
}
public override ISQLitePlatform GetCurrentPlatform(string key)
{
return new SQLite.Net.Platform.Generic.SQLitePlatformGeneric();
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
但数据库不是在内存中创建的,而是在bin项目的文件夹中创建的。
我尝试SQLiteConnection像这个例子一样初始化,但没有一个构造函数只接受一个字符串。
在 .NET Core 3.1 api 项目中,我集成了 swagger ui。
在 swagger ui 的 Web dto 模式中,我可以看到基本数据注释属性(如Required等StringLength)已应用于属性以进行验证。
如果自定义属性已应用于 Web dto 的属性,我还想显示该属性。
例如:
public class AttachmentGetInfoWebDto
{
[IsNewerThan(minYear: 1928, "You cannot select an attachment older than 1928")]
public int FromYear { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我可以向 的示意图显示AttachmentGetInfoWebDto您不允许传递FromYear小于该属性的值,那就太好了1928。这可能吗?
我们尝试在Visual Studio中使用Xamarin创建跨平台应用程序.我们需要在我们的Pcl项目中添加对android,ios和windows phone的sqlite支持.我们通过NuGet添加了Sqlite-Net PCL,但没有任何SQLiteDataReader,SQLiteParameter或SQLiteDataAdapter.有没有办法为所有这三个平台创建一个支持mono.data.sqlite的Pcl?
我已经定义了一个 yup 模式
export const ValidationSchema = yup.object().shape({
dateTo: yup
.date()
.required(MandatoryFieldMessage)
uebernachtungen: yup.array().of(
yup.object().shape({
ort: yup
.string()
.trim()
.max(100, Maximum100CharactersMessage)
.required(MandatoryFieldMessage),
bis: yup
.date()
.required(MandatoryFieldMessage)
.max(yup.ref("dateTo"), "display message") }))
})
Run Code Online (Sandbox Code Playgroud)
我只想使用dateTo数组内部的值,这样所有的bis值都uebernachtungen不允许大于dateTo。
问题是我可以访问数组内部的项目,ort但我无法访问其中的项目,例如dateTo。
因此,在这种情况下 yup.ref("dateTo") 将返回未定义但yup.ref("ort")正确的。数组似乎有自己的上下文,我无法访问父上下文。
这怎么可能呢?
我想在Android操作栏上添加一个没有预选选项的下拉菜单.更确切地说,我希望箭头位于操作栏上应用程序的图标旁边.到目前为止,代码是:
protected void onCreate(Bundle savedInstanceState) {
.
.
.
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(this, R.array.logo_options,
android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(spinnerAdapter, null);
}
Run Code Online (Sandbox Code Playgroud)
如何摆脱操作栏上的文字?
我做了一个FragmentActivity.一些碎片包括一个EditText.
我想,当软输入键盘启动并MotionEvent发生时 - 除了在EditText内部单击的事件 - 要隐藏的软输入.到现在为止,我在MainActivity中编写了这段代码:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
InputMethodManager im = (InputMethodManager) getApplicationContext()
.getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
return super.dispatchTouchEvent(ev);
}
Run Code Online (Sandbox Code Playgroud)
它似乎工作.但是当我在EditText中单击时,它会隐藏并再次出现.我不希望这种情况发生.在这种情况下,我希望键盘只是保留在屏幕上.
dispatchTouchEvent()当我点击Fragment里面的EditText时,有什么方法可以禁用吗?
有没有办法检测其中的EditText的click事件dispatchTouchEvent()并在那里创建条件,这会禁用隐藏的软输入?
我想使用我的 .resw 文件中的字符串设置 ContentDialog 的 PrimaryButtonText、SecondaryButtonText 和 Title 属性。很遗憾 ?只能对使用 x:Uid 的一个属性执行此操作,因为不能接受在 ContentDialog 内设置 x:Uid 两次。我什至试图做这样的事情:
<ContentDialog>
<ContentDialog.PrimaryButtonText x:Uid="DialogConfirm" />
<ContentDialog.SecondaryButtonText x:Uid="DialogCancel" />
</ContentDialog>
Run Code Online (Sandbox Code Playgroud)
但我有一个例外
XBF 生成错误代码 0x09c8
有什么办法可以做到这一点吗?
android ×4
sqlite ×3
xamarin ×3
c# ×2
mvvmcross ×2
sqlite-net ×2
uwp ×2
.net-core ×1
call ×1
dialog ×1
image ×1
mobile ×1
motionevent ×1
shape ×1
swagger ×1
swagger-ui ×1
unit-testing ×1
validation ×1
winrt-xaml ×1
xaml ×1
yup ×1