小编Sta*_*tam的帖子

以编程方式更改图层列表中的形状的颜色

我试图以编程方式更改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.如何以编程方式更改图层内部的形状内的颜色?

android shape android-drawable layerdrawable

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

无法在Mobile上运行的通用Windows应用程序中加载DLL sqlite3

我正在开发一个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 .nu​​get\packages\SQLitePCL.raw_basic\0.7.1\build \native\sqlite3_dynamic\winrt81\arm\sqlite3.dll TestApp1

sqlite sqlite-net uwp

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

使用MvvmCross在Xamarin Forms Android Project中不显示Frame的轮廓颜色

目前我正在使用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)

Android页面

iOS页面

Xamarin Forms版本2.1 MvvmCross版本4.1

xamarin.android mvvmcross xamarin.forms

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

从Xamarin Android上的另一个活动开始活动

我发现这个java代码创建了一个通用方法来启动其他活动的任何活动.

public void gotoActivity(Class activityClassReference)
{
    Intent i = new Intent(this,activityClassReference);
    startActivity(i);
}
Run Code Online (Sandbox Code Playgroud)

如何将该代码转换为c#for xamarin-Android?

提前致谢.

android call android-activity xamarin

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

是否可以在Xamarin表单中使用图像集

我试图在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)

image xamarin xamarin.forms

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

是否可以使用 SQLite.Net-PCL 创建内存数据库?

目前,我正在使用 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像这个例子一样初始化,但没有一个构造函数只接受一个字符串。

c# sqlite unit-testing mvvmcross sqlite-net

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

如何在 Web dto 架构内的 swagger ui 中显示自定义验证属性

在 .NET Core 3.1 api 项目中,我集成了 swagger ui。

在 swagger ui 的 Web dto 模式中,我可以看到基本数据注释属性(如RequiredStringLength)已应用于属性以进行验证。

如果自定义属性已应用于 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。这可能吗?

swagger swagger-ui .net-core swashbuckle.aspnetcore

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

如何在xamarin跨平台应用程序中创建具有sqlite支持的PCL

我们尝试在Visual Studio中使用Xamarin创建跨平台应用程序.我们需要在我们的Pcl项目中添加对android,ios和windows phone的sqlite支持.我们通过NuGet添加了Sqlite-Net PCL,但没有任何SQLiteDataReader,SQLiteParameter或SQLiteDataAdapter.有没有办法为所有这三个平台创建一个支持mono.data.sqlite的Pcl?

c# sqlite mobile cross-platform xamarin

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

如何在 yup 验证中访问数组内的父值

我已经定义了一个 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")正确的。数组似乎有自己的上下文,我无法访问父上下文。

这怎么可能呢?

validation yup

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

如何在Actionbar上添加下拉菜单,而不会占用预占的空间

我想在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)

如何摆脱操作栏上的文字?

android android-actionbar drop-down-menu

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

如何在dispatchTouchEvent中检测MotionEvent

我做了一个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中单击时,它会隐藏并再次出现.我不希望这种情况发生.在这种情况下,我希望键盘只是保留在屏幕上.

  1. dispatchTouchEvent()当我点击Fragment里面的EditText时,有什么方法可以禁用吗?

  2. 有没有办法检测其中的EditText的click事件dispatchTouchEvent()并在那里创建条件,这会禁用隐藏的软输入?

android android-softkeyboard motionevent

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

将 .resw 文件中的多个字符串资源用于 ContentDialog

我想使用我的 .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

有什么办法可以做到这一点吗?

xaml dialog winrt-xaml uwp

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