بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

تعیین فونت و RTL کردن محتوای لود شده WebView در Fragment

مدیریت گفتگو
احسان 10 سال پیش
آخرین تغییر: 8 سال پیش

سلام ، 

در یک Fragment چگونه میشه محتوای لود شده وب ویو رو راست چین کرد ، و همچنین چگونه فونت آن را تغییر دهیم ؟

حل شد! با تشکر از دوستان

نظرات

رضا 10 سال پیش
عکس اینکه چه جوری هم کار می کنه بزار ممنون
atf 10 سال پیش
باید برای وب ویو یک فایل css بسازید که اطلاعاتی شمال راست و چپ بودن نوشته ها , فونت و .... رو اونجا قرار بدید و بعد روی وب ویو ست کنید
احسان 10 سال پیش
@atf بخش css مشکلی نیست ، حالا چطور باید توی fragment روی وب ویو ست کنیم ؟

پاسخ‌ها 2

atf 10 سال پیش

داخل فولدر assets یک فایل style.css بسازید

مثلا اینا مشخصاتی که تو وب ویو میخوایدش

 h1 {
   color: #2a2a2a;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

h2 {
   color: #2a2a2a;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

h5 {
   color: #2a2a2a;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

p {
   color: #2f2f2f;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

a:link {
   color: #5677fc;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

a:visited {
   color: #9575cd;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

a:active {
   color: #2a36b1;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

a:hover {
   color: #2a36b1;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

img {
   max-width: 300px;
   max-height: 300px;
   width: auto;
   height: auto;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}


video {
   max-width: 300px;
   max-height: 400px;
   width: auto;
   height: auto;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

iframe {
   max-width: 100%;
   max-height: 400px;
   width: auto;
   height: auto;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

blockquote {
   margin: 0px;
   padding: 16px;
   background-color: #e7e7e7;
   border-right: 4px solid #cbcbcb;
   text-indent: 24px;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

* {
   color: #2a2a2a;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}
div * {
   color: #2a2a2a;
    font-family: MyFont;
    font-size: medium;
    text-align: right;
}

@font-face {
    font-family: MyFont;
    src: url("file:///android_asset/fonts/xxx.ttf")
}

 

بعد برای وب ویو اطلاعات رو اینجوری ست کنید

 

webView = (WebView) v.findViewById(R.id.webView);
webView.setWebChromeClient(new WebChromeClient()); webView.getSettings().setJavaScriptEnabled(true);

webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (Utils.containsImage(url)) { }else{ startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); } return true; } });

String s = getContent; String ContentStr = "<html><head><link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />" + s; webView.loadDataWithBaseURL("file:///android_asset/", ContentStr, "text/html", "UTF-8", null);

getContent میشه هر اطلاعاتیه که دارید

 

نظرات

احسان 10 سال پیش
هر چقدر تلاش کردم نشد این کد ها رو اضافه کنم ارور های متفاوتی میده
احسان 10 سال پیش
متشکر ، با استفاده از کد های شما و تغییراتی دیگر مشکلم حل شد!
sar3da 8 سال پیش

سلام
فقط کافیه این کد رو قرار بدید
webViewContent.loadDataWithBaseURL("", "<html dir=\"rtl\" lang=\"\"><body>" + LoadData + "</body></html>", "text/html", "UTF-8", null);

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .