我试图在渲染后获得webview的高度.它总是返回null,我试过getHeight,getMeasuredHeight,getContentHeight它总是返回null.
布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/instructions"
android:background="@color/transparent_black" >
<WebView
android:id="@+id/top_content"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
活动
public class TestActivity extends MenuActivity {
private final static String TAG = "HearingTest";
private String urlTopContent;
private WebView topContent;
private boolean mMoreInfoTop = true;
private int mYdelta = 0;
private int mBottomOffset = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.right_hearing_test);
String topHtml = this.getString(R.string.top_content);
//String bottomHtml = this.getString(R.string.bottom_content);
urlTopContent = "file:///android_asset/html/" + topHtml; …Run Code Online (Sandbox Code Playgroud) 嗨,我正在学习南希,我正在尝试绑定模型,但我收到错误:
Error 8 'NancyFxTutorial.CarModule' does not contain a definition for 'Bind' and no extension method 'Bind' accepting a first argument of type 'NancyFxTutorial.CarModule' could be found (are you missing a using directive or an assembly reference?) C:\Development\Projects\C#\Web\Nancy\NancyFxTutorial\NancyFxTutorial\CarModule.cs
Run Code Online (Sandbox Code Playgroud)
模型:
public class BrowseCarQuery
{
public string Make { get; set; }
public string Model { get; set; }
}
public class CarModule : NancyModule
{
public CarModule()
{
Get["/status"] = _ => "Hello World";
Get["/Car/{id}"] = parameters =>
{
int id = …Run Code Online (Sandbox Code Playgroud) 如果加载显示错误消息需要很长时间,我想暂停我的webview.我正在使用,setWebViewClient因为我需要使用public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error).
我一直在环顾四周,看到我可以使用这种方法onProgressChanged(WebView view, int newProgress).现在我不能使用这种方法setWebViewClient,也无法弄清楚如何解决这个问题.我的另一个问题是,一旦页面加载,进度条永远不会消失,我也无法在方法中添加断点public void onPageFinished(WebView view, String url).
Web视图设置方法:
public void WebViewSettings(){
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.canGoBack();
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Uri.parse(url).getHost().equals(urlString)) {
// This is my web site, so do not override; let my WebView load the page
return false;
}
// Otherwise, the link is not for …Run Code Online (Sandbox Code Playgroud) 我在我的android应用程序中有几个方法,我想在多个活动中重用,因为它是一个Java助手类,我没有从任何东西扩展.我有两个问题,第一个是如何将上下文传递给java类,第二个是如何使用从helper类中的activity扩展的方法,下面是我的帮助类:
Java类
public class ScreenHelper {
Context context;
public ScreenHelper(Context ctx) {
this.context = ctx;
}
public int getStatusBarHeight(layout layout) {
Rect r = new Rect();
Window w = (Window) getWindow();
w.getDecorView().getWindowVisibleDisplayFrame(r);
return r.top;
}
public int getScreenHeight() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int ScreenHeight = metrics.heightPixels;
return ScreenHeight;
}
public int getTitleBarHeight() {
RelativeLayout relaLayout = (RelativeLayout) findViewById(R.id.title_bar);
int titleHeight = relaLayout.getHeight();
Log.d("Title Height","Title Height:" + titleHeight);
return titleHeight;
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.
嗨,我正在开发一个Android应用程序,并有两个实际上相同的活动,但加载不同的数据.我目前有两个活动,有很多重复的代码,我觉得我可以通过只使用一个活动来优化它.
活动1:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.right_hearing_test);
String topHtml = this.getString(R.string.top_content);
String bottomHtml = this.getString(R.string.bottom_content);
View infoButton = findViewById(R.id.info_button);
infoButton.setVisibility(View.VISIBLE);
TextView titleText = (TextView) findViewById(R.id.title_text);
titleText.setText(R.string.Hearing_Test);
mScrollButton = (ScrollView) findViewById(R.id.scroll_view);
topContent = (WebView) findViewById(R.id.top_content);
topContent.setBackgroundColor(0);
bottomContent = (WebView) findViewById(R.id.bottom_content);
bottomContent.setBackgroundColor(0);
activityHelper = new ActivityHelper(this);
topContent.loadUrl("file:///android_asset/html/" + topHtml);
bottomContent.loadUrl("file:///android_asset/html/" + bottomHtml);
getScreenSize();
getMargins();
setResult(RESULT_OK);
}
Run Code Online (Sandbox Code Playgroud)
活动2
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.left_hearing_test);
View infoButton = findViewById(R.id.info_button);
infoButton.setVisibility(View.VISIBLE);
mScrollButton = (ScrollView) findViewById(R.id.scroll_view);
topContent = (WebView) findViewById(R.id.top_content);
topContent.setBackgroundColor(0); …Run Code Online (Sandbox Code Playgroud) 我希望能够将用户添加到用户json文件.我正在使用Json.net这样做,任何人都有任何想法,我可能会这样做吗?
我有一个使用 webview 的应用程序,webview 里面有一个地图,我让它可以让用户使用以下代码自动找到用户位置:
清单文件权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)
网页视图活动:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_layout);
WebViewSettings();
LoadWebPage(urlString);
}
Run Code Online (Sandbox Code Playgroud)
网页视图设置:
@SuppressLint("SetJavaScriptEnabled")
public void WebViewSettings(){
webView = (WebView) findViewById(R.id.webview);
webView.canGoBack();
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.setWebViewClient(new WebViewClientSetup());
webView.setWebChromeClient(new GeoWebChromeClient());
webView.getSettings().setGeolocationEnabled(true);
myTimer = new Timer();
//Start this timer when you create you task
myTimer.schedule(new loaderTask(), 20000);
}
Run Code Online (Sandbox Code Playgroud)
WebView客户端:
public class WebViewClientSetup extends WebViewClient {
@Override
public …Run Code Online (Sandbox Code Playgroud) 我需要以编程方式将边距添加到webview.我想做类似下面的事情:
public void setSideMargin(final int sideMargin, int id) {
WebView webView = (WebView) ((Activity) context)
.findViewById(id);
WebView.LayoutParams p = new WebView.LayoutParams(
WebView.LayoutParams.MATCH_PARENT,
WebView.LayoutParams.WRAP_CONTENT);
p.leftMargin = sideMargin;
p.rightMargin = sideMargin;
webView.setLayoutParams(p);
}
Run Code Online (Sandbox Code Playgroud)
我知道这显然是错误的,但有什么我可以做的以编程方式添加边距吗?谢谢
我有一个序列化 Json 对象的方法,如下所示:
public bool SerializeObject<T>(string fileName, IEnumerable<T> list)
{
try
{
var listContent = JsonConvert.SerializeObject(list, Formatting.Indented);
var relativeFileName = _httpContext.Server.MapPath(fileName);
_file.WriteAllText(relativeFileName, listContent);
return true;
}
catch (Exception ex)
{
_logger.LogException(ex);
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个单元测试来测试该方法是否返回 true,但无法想到为单元测试执行此操作的逻辑!任何人都可以对我如何在 xUnit 中执行此操作提出一些建议吗?谢谢