Flutter 颤振-查看容器内的网页

Flutter 颤振-查看容器内的网页,flutter,dart,android-webview,Flutter,Dart,Android Webview,我试图创建一个主细节类型容器,从屏幕左侧的一列ListTiles开始。当用户点击某个项目时,屏幕的其余部分将显示一个预设的URL。点击不同的项目会显示不同的预设URL 我已经看过了颤振和包裹,但要么我不太了解它们,很有可能!或者他们还不能做我想让他们做的一切 除了我刚才提到的,如果可能的话,我还希望网页能够打开、缩放,以适应它们所处的空间,但仍然可以缩小到其他大小 p、 我是一个新手,对小部件的构造和内存管理也感到困惑。如果我尝试使用WebView小部件之类的东西,我不知道是每次打开页面时只编写

我试图创建一个主细节类型容器,从屏幕左侧的一列ListTiles开始。当用户点击某个项目时,屏幕的其余部分将显示一个预设的URL。点击不同的项目会显示不同的预设URL

我已经看过了颤振和包裹,但要么我不太了解它们,很有可能!或者他们还不能做我想让他们做的一切

除了我刚才提到的,如果可能的话,我还希望网页能够打开、缩放,以适应它们所处的空间,但仍然可以缩小到其他大小


p、 我是一个新手,对小部件的构造和内存管理也感到困惑。如果我尝试使用WebView小部件之类的东西,我不知道是每次打开页面时只编写WebView小部件,还是创建一个WebView小部件,添加一个控制器,然后编写.loadFromUrl方法。

您可以创建一个包含两个子项的行。第一个子项是由ListTiles组成的ListView。第二个孩子将是WebView。当用户点击列表互动程序时,用控制器加载url。在您的案例中,无需每次都重建WebView

使用webview_颤振的示例:

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  WebViewController _controller;

  List pages = ["https://google.com", "https://apple.com"];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Row(
      children: <Widget>[
        Container(
          width: 300,
          child: ListView.builder(
            itemCount: pages.length,
            itemBuilder: (BuildContext context, int index) {
              return ListTile(
                title: Text(pages[index]),
                onTap: () {
                  if (_controller != null) {
                    _controller.loadUrl(pages[index]);
                  }
                },
              );
            },
          ),
        ),
        Expanded(
          child: WebView(
            onWebViewCreated: (WebViewController c) {
              _controller = c;
            },
            initialUrl: 'https://stackoverflow.com',
          ),
        ),
      ],
    ));
  }
}

非常感谢。这是有意义的,回答了这个问题,也解决了我自己尝试的一个问题,我得到了一个初始的null异常。这是一个很好的答案。不过,我想顺便提一下,到2019年9月,生成的网页将无法进行压缩或缩放。