我正在开发一个windows Phone8.1通用应用程序。我正在提取一个提要,然后将其显示在列表框中。提要中的每个项都将您带到一个web页面。当有人单击列表框视图页中的某个项时,我使用WebView控件来显示网页的内容。我可以在WebView控件中显示web页面,但是当我按下硬件后退按钮时,它会将我带回到主页面(我开始的地方),而不是列表框视图页面。如何返回到列表框视图页,以便用户可以单击另一项以在WebView控件中查看该项?
下面是我的XAML:
<WebView Grid.Row="0" Name="webBrowser1" Visibility="Collapsed" Width="auto" Height="auto" Grid.RowSpan="2" NavigationCompleted="Mywebbrowser_LoadCompleted"/>
下面是我在列表框视图页上更改的选择代码,它将用户带到webview控件中的网页:
private void SearchListBox_SelectionChanged(对象发送者,SelectionChangedEventArgs e){ListBox ListBox=sender as ListBox;
if (listBox != null && listBox.SelectedItem != null)
{
// Get the item that was tapped.
SearchListItem sItem = (SearchListItem)listBox.SelectedItem;
// Set up the page navigation only if a link actually exists in the feed item.
if (sItem.Url.Length > 0)
{
// Get the associated URI of the feed item.
Uri site = new Uri(sItem.Url.Replace("https", "http"));
//Set up the app bar once the feed items are displayed in the web browser control
//appbar();
// Show the progress bar.....
mycontrols.progressbarShow(pgbar, pgText);
//appbar_eh.appbarNoShow(ApplicationBar);
//mycontrols_eh.progressbarShow(pgbar, pgText);
webBrowser1.Visibility = Windows.UI.Xaml.Visibility.Visible;
webBrowser1.Source = site;
}
}
}
编辑添加的反向处理程序:
void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
Frame frame = Window.Current.Content as Frame;
if (frame == null)
{
return;
}
if (frame.CanGoBack)
{
frame.GoBack();
e.Handled = true;
webBrowser1.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}
}
您当前如何处理HardwareButton.BackPressed事件?
由于它返回到您的主页而不是退出应用程序,您必须有一些处理程序(直接或通过库代码)。如果WebView是打开的,而不是执行正常的导航,则需要修改该代码以隐藏它。
如果使用NavigationHelper函数,可以重写GoBack命令来完成此操作。
编辑:根据您添加的示例代码,这里有一个可能的方法。其基本思想是关闭WebView,而不是调用Frame.Goback,而不是同时调用两者。frame.goback调用将返回,所以如果您不想导航,就不要调用它。
void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
Frame frame = Window.Current.Content as Frame;
if (frame == null)
{
return;
}
// Depending on the app there may be higher level state than
// directly checking the Visibility property
if (webBrowser1.Visibility == Windows.UI.Xaml.Visibility.Visible)
{
// If webBrowser is open then close it rather than
// navigating to the previous page
webBrowser1.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
e.Handled = true;
}
else if (frame.CanGoBack)
{
frame.GoBack();
e.Handled = true;
}
}
我有一个抽屉布局片段(在主活动中),它显示了一个可扩展的列表,当我点击扩展项目的子项时,会出现一个弹出窗口。这个具有自定义布局的弹出窗口包含文本视图、列表视图和2个按钮。 我给列表视图提供了id:,并在onCreateView函数中从视图组返回空值,如下所示: 并使类扩展的片段不是列表片段 我执行了前面的3个步骤,以避免出现“Content has view with id attribute'a
我的ListView自定义适配器(及其新实现的viewHolder)有一些问题。我有一个列表视图,每个项目都有一个复选框(这里没有新内容)。问题是,如果我的列表中有超过9个项目,当我选中第一个复选框时,第十个将自动选中(第二个与第十一个相同),就像两个项目都有一个监听器一样(我认为在某种程度上是这样)。 我在这里读到了listView、视图回收和ViewHolder解决它的方法的位置问题:如何使我
我有一个
我有一个ViewPagerContainer片段,在应用程序启动时加载。ViewPagerContainer片段将两个选项卡(选项卡A和选项卡B)添加到操作栏。选项卡B有两个项目的列表视图。 我所做的:我在选项卡B片段中的列表视图项上附加了一个click listener,这样当用户单击一个项时,它会在第一个片段(即选项卡B下)内打开另一个片段(子片段)。 我陷入困境的地方:当用户按下后退按钮时,
本文向大家介绍Django框架中的对象列表视图使用示例,包括了Django框架中的对象列表视图使用示例的使用技巧和注意事项,需要的朋友参考一下 direct_to_template 毫无疑问是非常有用的,但Django通用视图最有用的地方是呈现数据库中的数据。 因为这个应用实在太普遍了,Django带有很多内建的通用视图来帮助你很容易 地生成对象的列表和明细视图。 让我们先看看其中的一个通用视图:
问题内容: 我正在尝试在导航栏的中心添加自定义视图,并且正在使用以下代码对其进行测试: 我在视图控制器的viewDidLoad方法中进行设置,但是当我运行程序时,导航栏中似乎没有任何变化。 你能帮我吗? 问题答案: 这可行。初始化时给框架