У меня есть ViewPager
, каждый вид которого является WebView
. Я бы хотел, если пользователь нажимает на ссылку в одном из WebViews
, чтобы установить заголовок Actionbar
на текущую веб-страницу.Установить заголовок страницы WebView из фрагмента
Я надеялся, что смогу использовать shouldOverrideUrlLoading
, но название страницы всегда на предыдущей странице. Поэтому, если пользователь нажимает на ссылку 1, затем ссылается на 2 и ссылку 3. На странице 3 заголовок ссылки 2 отображается в Actionbar
.
Если я ставлю код установки заголовка в onPageFinished
, заголовок страницы создается на следующий вид на ViewPager
, в связи с выполнением ViewPager
предыдущим/следующим представлением для исполнения.
Фрагмент
public class Browser extends SherlockFragment {
private OnBrowserSetTitle mBrowserSetTitle;
@Override
public void onAttach(Activity act) {
super.onAttach(act);
mBrowserSetTitle = (OnBrowserSetTitle)act;
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
activity = getActivity();
setHasOptionsMenu(true);
mWebView = (WebView)getView().findViewById(R.id.webview);
mWebView.loadUrl("http://www.google.com");
mWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
if (view.getTitle() != null && view.getTitle().length() > 0)
{
mBrowserSetTitle.onBrowserSetTitle(mTitle);
}
return true;
}
});
}
}
активность
public class BrowserPager extends SherlockFragmentActivity implements Interfaces.OnBrowserSetTitle {
@Override
public void onCreate(final Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.browser_pager);
}
@Override
public void onBrowserSetTitle(String title) {
getSupportActionBar().setTitle(title);
}
}
Я думаю, вы можете быть смущены. Я могу обрабатывать заголовок страницы, когда пользователь перебирает между представлениями, но если пользователь находится в одном конкретном «WebView» и нажимает на ссылку на самой веб-странице, вот где я столкнулся с проблемой. –
@ KrisB я вижу. Я обновил свой ответ. – Tushar
спасибо за ответ. Если вы заметили в моем первоначальном вопросе, я попробовал 'onPageFinished', однако, с тем, как работает« ViewPagers », они выполняют предыдущие и следующие представления для производительности, поэтому, если я устанавливаю заголовок в' onPageFinished', по мере того, как пользователь проводит , заголовок показывает неправильный заголовок. –