这是使用 WebView 而不是 Textview 的好习惯吗? [关闭]
Posted
技术标签:
【中文标题】这是使用 WebView 而不是 Textview 的好习惯吗? [关闭]【英文标题】:Is that a good practice to use WebView instead of Textview? [closed] 【发布时间】:2015-02-16 15:27:28 【问题描述】:我正在开发一个安卓应用程序,所有内容都需要在本地访问,即应用程序不需要互联网连接。应用程序仅具有静态内容。我已经开发了可以访问我本地存储在 assets 文件夹中的 html 页面的应用程序。我只想知道使用webview
进行文本格式化是好的(一般)做法,还是有任何其他方法可以在android 中格式化文本?据我所知,文本格式在 android 中有点乏味。另一件事应用程序将仅使用马拉地语。所以请告诉我任何其他可以看起来不错的格式化textview
的方法。
以下是webview
的代码
public class AndroidHTMLActivity extends Activity
WebView myBrowser;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myBrowser = (WebView)findViewById(R.id.mybrowser);
myBrowser.loadUrl("file:///android_asset/mypage.html");
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_
android:layout_
>
<TextView
android:layout_
android:layout_
android:text="@string/hello"
/>
<WebView
android:id="@+id/mybrowser"
android:layout_
android:layout_
/>
</LinearLayout>
【问题讨论】:
WebView 对于格式化文本似乎有点矫枉过正。它将格式化您的文本,但它还会添加许多功能,这些功能只不过是批量代码。你需要做什么样的格式化?以相当简单的方式(字体、大小、颜色、样式)格式化 TextView 非常简单。 包括网页视图不是很好的做法,您可以在文本视图中使用一些html标签,请看一下androidengineer.com/2010/08/… 谢谢你的回答..但为什么这不是好的做法?我的应用没有很多内容,只是我需要一些文本格式 【参考方案1】:简短的回答是:这取决于:)
问自己以下问题:
您要应用哪种格式? 你的文字会改变吗? 您打算使用哪种来源的文本?现在解释一下:如果您想应用简单的格式(例如:粗体、斜体、某种颜色),TextView
是您的选择。它很简单并且可以完成工作。当您想要进行更复杂的格式化(如段落、缩进等)时,问题就来了。
您无法处理TextView
的特定情况是您的文本将被更改。我的意思是以下内容-您有一个包含两段的简单文本。您可以毫不费力地使用TextViews
做到这一点 - 两个TextView
s 具有正确的布局,对吧?好的,但是如果您的文本是从 Internet 或数据库或外部文件加载的,并且更新的版本包含三个段落,会发生什么情况?现在你明白我的意思了 :) 在这种情况下,最好使用 ```WebView`` 因为数据本身包含格式。
WebView
是更好方法的另一种情况是,当您想要显示一些由外部工具生成的富文本时。例如,如果您有一个 doc
文件要在您的应用程序中显示,您可以将其转换为 html
(有很多免费的在线工具可以做到这一点),然后您可以使用 @987654328 轻松显示它@ 保持所有格式、颜色、段落、图像、表格等不变。
结论:对于简单的情况,TextView
是首选方法,因为它简单,但对于更复杂的情况或当您的数据要更改其格式时,我推荐WebView
希望这会有所帮助:)
【讨论】:
嘿,Kiril 不错的答案.. 但是如果我的文本没有改变,我想在我的安卓应用程序中添加一些富文本..?? 嗨@AnupChaudhary,这取决于您希望它有多“富有”。您可以使用html
使其丰富,并使用WebView
加载它。这样你就可以轻松添加表格、边框、段落、图片等。如果你只想使用粗体、一个段落和一张图片,你可以使用TextView
和ImageView
。
谢谢这么好的答案.. 我会使用 Webview
很高兴看到我帮助了你 :)
是的,你帮帮我..堆栈上的人总是互相帮助..【参考方案2】:
WebView 在内部为显示 Html 数据提供了不同的功能。您也可以在 WebView 中使用 javascript。
当您使用 Html.fromHtml() 时,TextView 仅支持少数 Html 标签。所以我觉得还是用 WebView 比较好。
更多详情请查看此链接
Which one is better between TextView or WebView?
【讨论】:
好的,谢谢你的回答.. 我会等待更多的答案,但谢谢你...... 浏览后,我同意@Adan Ali。我认为 textView 只是纯文本而不是真正的标记。 WebView 专为 Web 标记(即 html)而设计。因此,我会使用 WebView。还要考虑一个事实,如果您决定增强您的应用程序并将 javascript 添加到网页中,那么所有管道都已经为您完成了。这是我在这件事上的 2 美分。【参考方案3】:TextView 不支持缩进和对齐,所以如果你需要,你必须使用 WebView。如果你只需要一些简单的 html 格式,那么 TextView 更快。
【讨论】:
以上是关于这是使用 WebView 而不是 Textview 的好习惯吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Android:以编程方式添加Textview,而不是将文本包装到下一行
Android Linkify.addLinks() 适用于一个 textview 而不是另一个
如何使用从 TextView 中的 firebaseDB 检索到的标签解析 HTML 文本?没有 WebView [重复]