Xamarin Forms中的Frame类非常有限,并且不允许我在Frame后面获得阴影.我使用以下代码为iOS制作了自定义渲染器:
public class RatingInfoFrameRenderer : FrameRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Frame> e)
{
base.OnElementChanged(e);
Layer.BorderColor = UIColor.White.CGColor;
Layer.CornerRadius = 10;
Layer.MasksToBounds = false;
Layer.ShadowOffset = new CGSize(-2, 2);
Layer.ShadowRadius = 5;
Layer.ShadowOpacity = 0.4f;
}
}
Run Code Online (Sandbox Code Playgroud)
在Android上制作类似版本会给我带来麻烦,因为我对Android原生的知识有限.谁能告诉我要看什么,也许是一些很好的代码示例?我没有找到任何看起来与此类似的东西.
因此,我做了这个非常简单的方法,我想使用自定义令牌登录到Firebase。截至目前,它只是
export const createCustomToken = functions.region('europe-west1').https.onCall(async (data, context) => {
try {
const firebaseJWT = await authenticationProvider.createCustomToken()
console.log(firebaseJWT.toString())
} catch (err) {
throw new functions.https.HttpsError('internal', 'Something went wrong ');
}
});
Run Code Online (Sandbox Code Playgroud)
authenticationProvider看起来像这样:
return firebase.admin.auth().createCustomToken("Some uid")
.then((token) => {
console.log("Did create custom token.");
return token;
}).catch((error) => {
console.log("Error creating custom token:" + error);
throw new firebase.functions.https.HttpsError('internal', 'createCustomToken(uid) has failed for some reason');
})
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用shell方法在本地运行它,在命令提示符下执行以下行:firebase functions:shell,然后调用authenticationController.createCustomToken({})
这只是给我以下响应:创建自定义令牌时出错:错误:无法确定服务帐户。确保使用服务帐户凭据初始化SDK。或者,指定一个具有iam.serviceAccounts.signBlob权限的服务帐户。原始错误:错误:发出请求时出错:getaddrinfo ENOTFOUND元数据元数据:80。错误代码:ENOTFOUND
服务帐户似乎具有适当的角色,所以我认为这不是问题。
因此,我想知道是否可以通过某种方式从邮递员那里叫我createCustomToken()函数,并查看响应,以便我可以正确地测试代码,而无需应用程序实现onCall方法来查看结果?
还是我缺少通过firebase functions:shell命令运行它的功能?
我正在尝试使用 Material Button,我希望在最左侧有一个图标,然后在中心有一些文本。但是,例如,当我放入左侧的图标时,我可以清楚地看到文本被推到了右侧。有什么办法可以避免这种情况吗?我希望文本居中,并希望避免为它做一个骇人听闻的解决方案..
<com.google.android.material.button.MaterialButton
android:id="@+id/testButton"
style="@style/RevertedColorDefaultButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="TEST"
android:textAlignment="center"
app:icon="@drawable/some_icon"
app:iconGravity="start"´
app:iconTint="@color/colorPrimary"
app:layout_constraintBottom_toTopOf="@id/someOtherButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.94" />
Run Code Online (Sandbox Code Playgroud)
有关信息,我用普通按钮尝试了同样的事情,同样的问题:
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/test2Button"
style="@style/RevertedColorDefaultButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:drawableStart="@drawable/some_icon"
android:drawableTint="@color/colorPrimary"
android:text="TEST"
app:layout_constraintBottom_toTopOf="@id/someOtherButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.94" />
Run Code Online (Sandbox Code Playgroud)
编辑:添加图像
我想知道如何在相机预览上放置一个轮廓.到目前为止,我已经有以下示例工作,它只是预览相机.
http://developer.android.com/reference/android/view/TextureView.html
我正在尝试进行相机预览,我在其中显示了一个轮廓,以便使用应用程序的人知道应该拍摄照片的位置,然后点击一个按钮,拍摄照片,当然没有剪影在图片里.
如何才能做到这一点?我似乎找不到任何关于如何在纹理视图上放置叠加层的示例.
我有一个后端,它总是会返回带有一些数据的“成功”,因为在 json 字段中,字段将被命名为成功并在其中包含数据。或者它会以 json 格式返回一个错误对象。所以我想要某种 BaseResponse,所以当我使用它时,我可以做一些类似 BaseResponse 的事情,这样成功就会被映射为一个 Person 对象。
所以我想这样做:
@Parcelize
data class BaseResponse<T>(
val success: T? = null
) : Parcelable
Run Code Online (Sandbox Code Playgroud)
但它说 Parcelize 不直接支持 Type。有什么办法可以做到这一点吗?还是我需要写一些自定义的东西?使用 Retrofit 和 Gson 作为序列化程序调用调用等。
android ×2
camera ×1
data-class ×1
firebase ×1
generics ×1
kotlin ×1
material-components-android ×1
parcelable ×1
postman ×1
xamarin ×1