我正在尝试用 Java 为 Flutter 创建一个插件。我试图Android activity在我的主Java类中传递参数。
这是我的本机代码:
package com.example.trsurveys;
import androidx.annotation.NonNull;
import android.app.Activity;
import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;
import io.flutter.plugin.common.PluginRegistry.Registrar;
import theoremreach.com.theoremreach.TheoremReach;
public class TrsurveysPlugin implements FlutterPlugin, MethodCallHandler {
private MethodChannel channel;
private Registrar registrar;
private Activity activity;
@Override
public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) {
channel = new MethodChannel(flutterPluginBinding.getFlutterEngine().getDartExecutor(), "trsurveys");
channel.setMethodCallHandler(this);
}
When I try to debug my app it shows me the following errors
private TrsurveysPlugin(Activity activity) {
this.activity = …Run Code Online (Sandbox Code Playgroud) 我正在为我的 Flutter 应用程序使用flutter_inappwebview依赖项。
我想禁用放大方面,但在阅读文档iOS时我无法理解如何做到这一点。我看到他们有一个 Android 属性,可以设置为启用和禁用缩放。supportZoomtruefalse
我在 In-appWebView iOS 规范中发现的唯一与缩放相关的属性是
maximumZoomScale,minimumZoomScale但我不明白如何实现它来禁用缩放。
iOS 有没有办法实现这一点?
我有一个银子列表,我想将其封装在一张卡片中。这是我的银名单代码:
Widget hello() {
return SliverPadding(
padding: const EdgeInsets.only(
top: 0.0,
bottom: 100.0,
),
sliver: SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.only(
top: 4,
bottom: 4,
left: 8,
right: 8,
),
child: Column(
children: <Widget>[
Container(
color: Color(0xff9a9a9a),
height: 0.5,
),
SizedBox(
height: 4,
),
ListTile(
leading: ClipRRect(
borderRadius: BorderRadius.circular(12.0),
child: Container(
child: Image.network('http://cdn.akc.org/content/hero/cute_puppies_hero.jpg'),
),
),
title: Row(
children: <Widget>[
Text('Hello',
),
],
),
subtitle: Text(
'This is a puppy',
),
SizedBox(
height: 4, …Run Code Online (Sandbox Code Playgroud) 我的屏幕底部有一个容器,它有一个 BottomNavigationBar。我希望容器获得我的背景颜色。即使在添加 CLipRRect 之后,它也没有得到纠正。我还尝试使容器透明,但它显示了一个错误,我无法为我的容器分配颜色并给它一个 boxDecoration。我希望多余的白色部分合并到我的背景中。
//编辑
Widget _bottomNavigationBar(int selectedIndex) => ClipRect(
child: Container(
height: 80,
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(52.0)),
boxShadow: <BoxShadow>[
BoxShadow(
color: Colors.grey.withOpacity(0.3),
offset: const Offset(0.0, 0.0),
blurRadius: 52.0),
],
),
child: ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(52.0),
topRight: Radius.circular(52.0)),
child: BottomNavigationBar(
selectedItemColor: Color(0xFFFE524B),
unselectedItemColor: Color(0xFFFF8C3B),
onTap: (int index) => setState(() => _selectedIndex = index),
currentIndex: selectedIndex,
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(
Entypo.home,
size: 30,
),
title: Text('')),
BottomNavigationBarItem(
icon: Icon(
Entypo.game_controller,
size: 30,
),
title: Text('[![enter …Run Code Online (Sandbox Code Playgroud) 我正在为我的应用程序中的弹出窗口使用警报对话框。当触发 onTap 时,弹出窗口会被调用,但是当我按下“取消”按钮时,弹出窗口不会关闭,并且弹出窗口后面的整个屏幕会变黑。这是我的弹出窗口代码。
import 'package:flutter/material.dart';
class FancyAlertDialog {
static showFancyAlertDialog(
BuildContext context,
String title,
String message,
{
bool dismissable = true,
Icon icon,
@required String labelPositiveButton,
@required String labelNegativeButton,
@required VoidCallback onTapPositiveButton,
@required VoidCallback onTapNegativeButton,
}) {
assert(context != null, 'context is null!!!');
assert(title != null, 'title is null!!!');
assert(message != null, 'message is null!!!');
assert(labelPositiveButton != null, 'labelPositiveButton is null');
assert(labelNegativeButton != null, 'labelNegativeButton is null');
assert(onTapPositiveButton != null, 'onTapPositiveButton is null');
assert(onTapNegativeButton != null, 'onTapNegativeButton is null');
return …Run Code Online (Sandbox Code Playgroud) 我正在尝试重新创建一个类似于下图所示的按钮。但是我无法在它后面添加微弱的阴影。
这就是我想要实现的目标:
这是我的按钮的样子:
这是我的代码:
Container(
height: 45,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Color(0xFFFF8C3B),
Color(0xFFFF6365),
],
begin: Alignment.centerLeft,
end: Alignment.centerRight,
),
borderRadius: const BorderRadius.all(
Radius.circular(25.0),
),
),
child: Center(
child: GestureDetector(
onTap: () {},
child: Text(
'Create Account',
textAlign: TextAlign.left,
style: TextStyle(
fontFamily: "Netflix",
fontWeight: FontWeight.w600,
fontSize: 18,
letterSpacing: 0.0,
color: Colors.white,
),
),
),
),
),
Run Code Online (Sandbox Code Playgroud) 我的应用程序中有一个 TextFieldController,但是每次我使用键盘在其中输入任何内容时,整个应用程序都会重新加载并显示错误,
Error: setState() called after dispose(): _SlidingPanelState#65b14(lifecycle state: defunct, not mounted)
Run Code Online (Sandbox Code Playgroud)
该错误似乎与SlidingPanel相关,但我不确定它为什么会干扰 TextFieldController。
SliverToBoxAdapter(
child: Container(
height: 100,
padding: const EdgeInsets.all(20.0),
child: TextField(
decoration: InputDecoration(
border: InputBorder.none,
labelText: 'Enter Name',
hintText: 'Enter Your Name'),
),
),
),
Run Code Online (Sandbox Code Playgroud) 我有一个 gridView ,它在滚动时必须占据整个页面。目前它仅在页面的下半部分滚动,如下所示。
当我滚动包含元素的网格视图时,只有页面的底部正在滚动
@override
Widget build(BuildContext context) {
return Material(
child: Container(
color: DesignCourseAppTheme.nearlyWhite,
child: PageView(
scrollDirection: Axis.vertical,
children: [
Scaffold(
backgroundColor: DesignCourseAppTheme.nearlyWhite,
body: Container(
child: Column(
children: <Widget>[
SizedBox(
height: MediaQuery.of(context).padding.top,
),
getAppBarUI(),
Expanded(
child: Container(
height: MediaQuery.of(context).size.height,
child: Column(
children: <Widget>[
getCategoryUI(),
Flexible(
child: getPopularCourseUI(),
),
],
),
),
),
],
),
),
),
],
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
这里的 gridView 被称为:
Widget getPopularCourseUI() {
return Padding(
padding: const EdgeInsets.only(top: 8.0, left: 18, right: 16),
child: Column( …Run Code Online (Sandbox Code Playgroud) 我有一个水平格式的可滚动列表视图,我想将其转换为具有相同元素的网格视图。
Container(
height: MediaQuery.of(context).size.height / 4,
child: ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: homeList.length,
itemBuilder: (ctx, i) {
return GestureDetector(
onTap: () {
if (i == 0) {
_interstitialAd.show();
} else if (i == 1) {
} else if (i == 2) {
sendInvite();
}
},
);
},
),
)
Run Code Online (Sandbox Code Playgroud)