背景:
我有一个带有RelativeLayout父级的BottomSheetDialog。我有一个ScrollView子级,在某些视图下拥有一个TextView,在ScrollView下有一个底部TextView。我需要根据其持有的文本大小将ScrollView转换为Wrap_Content,并将Bottom TextView保留在ScrollView下方的父底部。 当ScrollView内容很大时,没有问题。但是,当内容较小时,将按照图片中的说明在内容和底部TextView之间生成间隙/空白。
我尝试过的事情:
如果我使用LinearLayout父级,并且当ScrollView的内容足够大以占据整个屏幕时,它只会隐藏Bottom TextView。 如果我不在ScrollView中使用layout_above参数,则当内容较大时,它将仅隐藏Bottom TextView。 如果我为底部TextView删除alignParentBottom,则当ScrollView的内容较大时,它只会被隐藏。
我需要什么
我要删除所附图像中提到的ScrollView和TextView之间的空白区域。
我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bottom_sheet"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/pub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:fontFamily="sans-serif-black"
android:gravity="start|center"
android:maxLines="1"
android:padding="16dp"
android:textIsSelectable="true"
android:textStyle="italic" />
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/pub"
android:autoLink="web"
android:ellipsize="end"
android:fontFamily="sans-serif-black"
android:gravity="left"
android:maxLines="4"
android:padding="16dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textStyle="bold" />
<TextView
android:id="@+id/s_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/title_text"
android:ellipsize="end"
android:fontFamily="sans-serif-condensed"
android:gravity="left|center"
android:maxLines="2"
android:padding="16dp"
android:text=""
android:textAppearance="@style/TextAppearance.AppCompat.Title"
android:textSize="16sp"
android:textStyle="normal" />
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/downloaded_file_name"
android:layout_below="@id/s_text"
android:fillViewport="true">
<TextView
android:id="@+id/desc_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoLink="web"
android:gravity="left"
android:padding="16dp"
android:scrollbars="vertical"
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
android:textColor="@color/colorPrimaryText"
android:textSize="14sp" />
</ScrollView>
<TextView
android:id="@+id/downloaded_file_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="end|bottom"
android:padding="6dp"
android:textIsSelectable="true"
android:textSize="10sp" />
</RelativeLayout>
答案 0 :(得分:0)
Android does not support justify ,To justify text in android use WebView
WebView view = new WebView(this);
view.setVerticalScrollBarEnabled(false);
((LinearLayout)findViewById(R.id.inset_web_view)).addView(view);
view.loadData(getString(R.string.hello), "text/html; charset=utf-8", "utf-8");
and html code
<string name="hello">
<![CDATA[
<html>
<head></head>
<body style="text-align:justify;color:gray;background-color:black;">
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nunc pellentesque, urna
nec hendrerit pellentesque, risus massa
</body>
</html>
]]>
</string>
EDIT: to set Background transparent in it, use:
webView.setBackgroundColor(0x00000000);
if (Build.VERSION.SDK_INT >= 11) webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
this.wv.setWebViewClient(new WebViewClient() {
@Override public void onPageFinished(WebView view, String url) {
view.setBackgroundColor(0x00000000); if (Build.VERSION.SDK_INT >= 11)
view.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null); } });