小编Aze*_*mil的帖子

如何禁用底部导航栏在颤动中随键盘一起上升的行为

在我的应用程序中,我有一个搜索页面,当我单击搜索文本字段时,底部导航栏也会随键盘一起向上移动,它应该隐藏在键盘下方。因为当键盘显示时我可以导航到其他页面,这是不良行为。

代码:

class _AppHomeViewState extends State<AppHomeView>
    with TickerProviderStateMixin {

  TabController tabController;

  @override
  void initState() {
    super.initState();
    tabController = TabController(length: 4, vsync: this, initialIndex: 0);
    tabController.addListener(handleTabSelection);
  }

  @override
  Widget build(BuildContext context) {
    final scaffold = Scaffold(
      body: SafeArea(child: _buildBody(context)),
      bottomNavigationBar: Container(
        height: 48,
        decoration: BoxDecoration(
          color: StyledColors.BACKGROUND_COLOR,
          boxShadow: [
            BoxShadow(
              color: StyledColors.FORGROUND_COLOR.withOpacity(0.16),
              blurRadius: 12,
              offset: Offset(0, 0),
            ),
          ],
        ),
        child: SafeArea(
          child: _buildTabBar(context),
        ),
      ),
    );
  }

  Widget _buildBody(BuildContext context) {
    return TabBarView(
      physics: NeverScrollableScrollPhysics(),
      controller: tabController,
      children: <Widget>[
        HomeView(), …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-bottomnavigation

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

SharedPreferences 未在发布版本中实例化

在我的 flutter 应用程序中,我实现了一个入门视图。因为它应该只加载一次,所以我使用共享首选项来存储一个整数来表示已经显示了入职。当我在调试模式下运行应用程序时,一切正常。但是当我构建它的发布版本时,它不起作用。

而且我的应用程序还使用了 firebase 移动身份验证。我之所以提到这一点,是因为这也可能是一个原因。

编码:

case InitializeEvent:
        SharedPreferences prefs = await SharedPreferences.getInstance();
        int initScreen = prefs.getInt(SharedPrefUtil.INIT_SCREEN);
        await prefs.setInt(SharedPrefUtil.INIT_SCREEN, 1);
        if (initScreen == 1) {
          add(CheckAppConfigEvent());
        } else {
          yield state.clone(page: RootState.ONBOARDING_PAGE);
        }
        yield state.clone(loading: false);
        break;
Run Code Online (Sandbox Code Playgroud)

因此,在上面的代码中,如果我注释初始化共享首选项,读取和写入行并在 if else 语句中设置 true 或 false,则在发布版本中一切正常。这就是为什么我认为问题在于初始化共享首选项。

而且我只允许互联网。我是否缺少 AndroidManifest.xml 中的任何权限

<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)

android release-builds sharedpreferences flutter

9
推荐指数
2
解决办法
3133
查看次数

在 C 中取消引用和将变量的地址分配给指针变量有什么区别?

看下面两个代码!

int main() {
    int a = 12;
    int *p;
    *p = a;
}
Run Code Online (Sandbox Code Playgroud)

和这个代码,

int main() {
    int a = 12;
    int *p;
    p = &a;
}
Run Code Online (Sandbox Code Playgroud)

在第一段代码中将指针解引用为 this *p = a,在第二段代码中,变量的地址a被设置为指针变量。

我的问题是这两段代码有什么区别?

c pointers initialization memory-address dereference

3
推荐指数
1
解决办法
405
查看次数