我有一个使用旧版Maps API的Android应用程序,现在已弃用!
我需要采取哪些步骤才能使我的应用程序与新API一起使用.
我还使用了Distance Matrix API和Google Directions API.
我的代码会用它吗?!
我知道有很多问题的标题类似NoSuchMethodError: The method '#**something**#' was called on null.
并且通常当您尝试访问空对象的方法时会发生此问题。但是,在我的情况下,当我尝试将以下代码添加到我的时会显示此异常StatefulWidget
:
_handleMyBusinessesTap() {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => PageBusinessList(
firebaseUser: widget.firebaseUser,
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
一旦我尝试在我的代码中使用 Navigator 对象,我就会收到此异常。我能想到的我在此页面中与 Navigator 对象不会导致任何问题的其他页面的唯一区别是我以这种方式构建我的页面:
Widget build(BuildContext context) {
return DefaultTabController(
length: 3,
child: Scaffold(
appBar: _buildAppBar(),
drawer: _buildDrawer(),
body: _buildBody(),
),
);
}
Run Code Online (Sandbox Code Playgroud)
我在这里使用DefaultTabController
包含 3 页的正文:
Widget _buildBody() {
return TabBarView(
children: [
MyCardScreen(),
ReceivedScreen(),
SentScreen(),
],
);
}
Run Code Online (Sandbox Code Playgroud)
该_handleMyBusinessesTap
方法是我在抽屉中拥有的选项之一,我想将它带到一个新页面,但是由于某种原因,一旦我添加它,它就会在标题中抛出这个异常。有人遇到过这个问题并且知道应该如何处理吗?
这是 buildDrawer 方法:
Widget _buildDrawer() {
return Drawer(
child: …
Run Code Online (Sandbox Code Playgroud) 我想实现一个flutter_tagging内AppBar
。我设法在TextField
里面添加标记AppBar
并使用以下代码调整AppBar
usingPreferredSize
小部件的大小:
return PreferredSize(
preferredSize: Size.fromHeight(110),
child: AppBar(
backgroundColor: HexColor('171551'),
leading: const BackButton(),
flexibleSpace: Padding(
padding: const EdgeInsets.only(top: 48.0, left: 10, right: 10),
child: buildTaggedSearch(),
),
title: Container(),
actions: _buildActions(),
),
);
Run Code Online (Sandbox Code Playgroud)
这是结果:
我无法解决的问题是当用户输入太多标签并且标签转到第二行时会发生什么,这就是发生的情况:
我也是 Flutter 的新手,也许我错过了一些东西,但是我将如何解决这个问题并AppBar
根据标签的内容调整大小。我在这里讨论了大部分关于 AppBar 调整大小的问题,所有这些都使用了PreferredSize
我在这里使用的小部件。所以我想知道是否还有其他选择?
我希望Foursquare
在我的应用程序中集成地图的感觉.所以我创造了MapFragment
一个ListFragment
.
我将它们放在我放置Activity
地图的地方以占据整个屏幕尺寸,而列表片段设置一点点,所以你可以部分地看到地图,而另一部分被列表覆盖.现在我的猜测是这是实现它的方式,因为据我所知,没有办法将MapFragment
动画扩展到全屏而没有地图再次自我渲染.
首先,这是正确的方法吗?或者我应该放在MmapFragment
上面的部分Activity
和列表下面呢?如果是这样我怎么会在没有故障的情况下扩展呢?
如果它是第一个选项,那么我需要找到一种方法将地图放置在小视图中(当它被部分看到时),我的位置也在中心,但是因为地图从开始到完全设置屏幕我的位置居中在屏幕的中心,基本上由列表覆盖.
有人指出我如何实现这样的地图可扩展效果?
提前致谢.
我正在尝试使用ShowcaseView库,并且由于某些原因在引用此库之后,我得到以下未定义的方法错误:
The method getActionView(MenuItem) is undefined for the type MenuItemCompat
The method build() is undefined for the type NotificationCompat.Builder
Run Code Online (Sandbox Code Playgroud)
在我的项目中.这些课程是其中的一部分support-library-v4
.只要从:Properties->Library
窗口中删除对该项目的引用,错误就会消失.
现在我不得不说我的工作区中有另一个项目使用这个库并且工作正常(示例项目ShowcaseView
),但我的其他项目并不那么幸运.
可能是什么原因?
提前致谢.
我有以下配置,我有一个应用程序是Main app,另一个应用程序被视为第一个应用程序的主题。如果没有第一个应用程序,第二个应用程序就无法运行。
现在,我必须处理两种情况:
用户安装第二个应用程序,而他已经拥有第一个主应用程序。
用户安装了第二个应用程序,但他没有第一个主应用程序。
在第一种情况下,当用户运行第二个应用程序(主题)时,我想将他重定向到第一个应用程序(主应用程序),因为它已经安装了。在这种情况下,我想从堆栈中删除第二个应用程序(主题)的活动。这样,如果用户按回键,他就会返回到 Android 桌面,而不是第二个(主题)应用程序。在这种情况下,用户不应该意识到中间有一个活动。
在第二种情况下,我想运行第二个应用程序(主题)的活动。此活动有一个按钮,可重定向用户转到 google play 并安装第一个应用程序 (main)。在这种情况下,如果用户决定按后退按钮,他将从 google play 返回到第二个应用程序(主题)的活动,因此在这种情况下,我希望用户看到此活动,它应该位于堆栈中与第一种情况相反。
这是我当前的活动代码:
public class MainActivity extends Activity {
private Context mContext;
private RelativeLayout rlShareAndWin;
private TextView tvInPrizeTitle, tvPrizeDesc;
private boolean isCorrespondingKiboAppInstalled;
private String kiboAppPackageName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initControllers();
initControllerListeners();
}
@Override
protected void onResume() {
super.onResume();
String themePackageName = …
Run Code Online (Sandbox Code Playgroud) 我有以下课程:
class FeedDataManager: URLManagerdelegate {
let TAG: String = "FeedDataManager"
weak var mDelegate: KeyboardViewController?
var mModelManager: ModelManager!
var mURLManager: UrlManager!
var mGetNewsTimer: NSTimer?
var mFeedsArray: Array<News>!
var mManagedObjectContext: NSManagedObjectContext!
var mPersistentStoreCoordinator: NSPersistentStoreCoordinator!
var mManagedObjectModel: NSManagedObjectModel!
class var sharedInstance: FeedDataManager {
struct Static {
static var onceToken: dispatch_once_t = 0
static var instance: FeedDataManager? = nil
}
dispatch_once(&Static.onceToken) {
Static.instance = FeedDataManager()
}
return Static.instance!
}
init (aDelegate: KeyboardViewController) {
self.mDelegate = aDelegate
}
}
Run Code Online (Sandbox Code Playgroud)
问题:如果你看一下init方法,你会发现它应该作为参数接收我想要存储在单例中的委托指针,所以基本上我需要将这个参数传递给这一行:
Static.instance = FeedDataManager()
Run Code Online (Sandbox Code Playgroud)
但我不知道它是如何完成的,有谁知道如何做到这一点? …
我在一个RaisedButton
小部件中有一个小Center
部件,作为一个小部件中的一个Column
小部件。我想在CircularProgressIndicator
此按钮的右侧添加一个并在按下按钮时显示它。但是我想在显示进度条时让按钮居中。换句话说,我希望按钮始终位于中心并且进度条与此按钮对齐。
我试图在Row
这里使用 a但这会按下按钮,它不再居中。
EDIT1:查看@Anil Chauhan提供的解决方案的结果(感谢您的回答):
就像我之前说的那样,我尝试像他一样使用 Row,问题是在这种情况下,按钮不在屏幕中央,而是由进度条推动。我需要它留在它的行中间。
EDIT2: @Anil Chauhan编辑的答案现在适用于按钮为预定大小的特定情况。但是,如果按钮的大小根据文本的语言(在具有多种语言的应用程序中)而更改,则此解决方案将不起作用。
这就是我问的问题的原因:“如何将小部件与另一个小部件对齐”。因为如果可以的话,我就不必再担心按钮文本大小了。
在 Flutter 中处理这个问题的正确方法是什么?
我正在开发一个应用程序,它也应该适用于 RTL 布局方向(阿拉伯语和希伯来语)。
如果布局方向是 RTL,我还需要对布局进行一些更改。
如何确定应用程序的当前布局方向是什么?
我正在构建一个显示不同片段的应用程序ViewPager
.我将这些片段添加到ViewPager
这样的:
public void intialiseViewPager()
{
List<Fragment> fragments = new Vector<Fragment>();
numberOfTabs = application.currentReport.getODTabsList().size();
for (int i = 0; i < numberOfTabs; i++)
{
ODTab tempTab = application.currentReport.getODTabsList().get(i);
if (tempTab.getTabType().equals(ODGrid.XML_GRID_ELEMENT))
{
GridFragment gridFragment = GridFragment.newInstance(tempTab.getTabId());
fragments.add(gridFragment);
}
else if (tempTab.getTabType().equals(ODChart.XML_CHART_ELEMENT))
{
NewChartFragment chartFragment = NewChartFragment.newInstance(tempTab.getTabId());
fragments.add(chartFragment);
}
}
Log.d(TAG, "Current report fragments set to adapter: "+fragments.toString());
mPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(), fragments);
mViewPager = (ViewPager)findViewById(R.id.pager);
mViewPager.setAdapter(mPagerAdapter);
mViewPager.setOffscreenPageLimit(0);
mViewPager.setOnPageChangeListener(this);
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我tempTab.getTabId()
在此行中传递了一个String()片段:
GridFragment gridFragment = GridFragment.newInstance(tempTab.getTabId());
Run Code Online (Sandbox Code Playgroud)
在片段本身我这样做来初始化它:
public …
Run Code Online (Sandbox Code Playgroud)