fixes heiht request from MD
This commit is contained in:
parent
9c950c2e0b
commit
592b7eef75
3 changed files with 20 additions and 10 deletions
|
|
@ -17,7 +17,7 @@ using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocessor", "4.2.0.680")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocessor", "4.2.0.703")]
|
||||||
public partial class MarkdownEditor : MarkdownEditorBase
|
public partial class MarkdownEditor : MarkdownEditorBase
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -143,6 +143,10 @@ WriteLiteral(@">
|
||||||
invokeCSharpAction(getMD());
|
invokeCSharpAction(getMD());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
$(document).ready(function () {
|
||||||
|
// TODO implement a dedicated injection
|
||||||
|
invokeCSharpAction(getMD());
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,10 @@
|
||||||
invokeCSharpAction(getMD());
|
invokeCSharpAction(getMD());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
$(document).ready(function () {
|
||||||
|
// TODO implement a dedicated injection
|
||||||
|
invokeCSharpAction(getMD());
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,11 @@ using Android.Views;
|
||||||
[assembly: Xamarin.Forms.ExportRenderer(typeof(MarkdownView), typeof(MarkdownViewRenderer))]
|
[assembly: Xamarin.Forms.ExportRenderer(typeof(MarkdownView), typeof(MarkdownViewRenderer))]
|
||||||
namespace BookAStar.Droid
|
namespace BookAStar.Droid
|
||||||
{
|
{
|
||||||
public class JSBridge : Java.Lang.Object
|
public class JsBridgeMarkdown : Java.Lang.Object
|
||||||
{
|
{
|
||||||
readonly WeakReference<MarkdownViewRenderer> hybridWebViewRenderer;
|
readonly WeakReference<MarkdownViewRenderer> hybridWebViewRenderer;
|
||||||
|
|
||||||
public JSBridge(MarkdownViewRenderer hybridRenderer)
|
public JsBridgeMarkdown(MarkdownViewRenderer hybridRenderer)
|
||||||
{
|
{
|
||||||
hybridWebViewRenderer = new WeakReference<MarkdownViewRenderer>(hybridRenderer);
|
hybridWebViewRenderer = new WeakReference<MarkdownViewRenderer>(hybridRenderer);
|
||||||
}
|
}
|
||||||
|
|
@ -29,7 +29,7 @@ namespace BookAStar.Droid
|
||||||
if (hybridWebViewRenderer != null && hybridWebViewRenderer.TryGetTarget(out hybridRenderer))
|
if (hybridWebViewRenderer != null && hybridWebViewRenderer.TryGetTarget(out hybridRenderer))
|
||||||
{
|
{
|
||||||
hybridRenderer.Element.Markdown = data;
|
hybridRenderer.Element.Markdown = data;
|
||||||
MarkdownViewRenderer.OnPageFinished(hybridRenderer.Element,
|
MarkdownViewRenderer.ProperOnPageFinished(hybridRenderer.Element,
|
||||||
hybridRenderer.EditorView);
|
hybridRenderer.EditorView);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -51,16 +51,18 @@ namespace BookAStar.Droid
|
||||||
return editorView;
|
return editorView;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
public static async void OnPageFinished(MarkdownView xview, WebView view)
|
/// To be called once document finished loading
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="xview"></param>
|
||||||
|
/// <param name="view"></param>
|
||||||
|
public static async void AdjustHeightRequest(MarkdownView xview, WebView view)
|
||||||
{
|
{
|
||||||
int i = 10;
|
|
||||||
while (view.ContentHeight == 0 && i-- > 0) // wait here till content is rendered
|
|
||||||
await System.Threading.Tasks.Task.Delay(100);
|
|
||||||
xview.BatchBegin();
|
xview.BatchBegin();
|
||||||
xview.HeightRequest = view.ContentHeight;
|
xview.HeightRequest = view.ContentHeight;
|
||||||
xview.BatchCommit();
|
xview.BatchCommit();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetMDEditorText(string text)
|
private void SetMDEditorText(string text)
|
||||||
{
|
{
|
||||||
editorTemplate.Model = (text == null) ? null : markdown.Transform(text);
|
editorTemplate.Model = (text == null) ? null : markdown.Transform(text);
|
||||||
|
|
@ -87,7 +89,7 @@ namespace BookAStar.Droid
|
||||||
var viewclient = new MarkdownWebViewClient(
|
var viewclient = new MarkdownWebViewClient(
|
||||||
md => { e.NewElement.Markdown = md; });
|
md => { e.NewElement.Markdown = md; });
|
||||||
EditorView.SetWebViewClient(viewclient);
|
EditorView.SetWebViewClient(viewclient);
|
||||||
Control.AddJavascriptInterface(new JSBridge(this), "jsBridge");
|
Control.AddJavascriptInterface(new JsBridgeMarkdown(this), "jsBridge");
|
||||||
SetMDEditorText(e.NewElement.Markdown);
|
SetMDEditorText(e.NewElement.Markdown);
|
||||||
InjectJS(JavaScriptFunction);
|
InjectJS(JavaScriptFunction);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue