[英]How to create Scroll Layout?
I have a problem with ScrollView. 我对ScrollView有问题。 This is my XMl file:
这是我的XMl文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:layout_weight="0.2"
android:id="@+id/imageView2"
android:adjustViewBounds="false" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.8"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:text=""
android:textColor="#ffff"
android:id="@+id/body" />
</LinearLayout>
</ScrollView>
And this is activity: 这是活动:
public class NewsBodyFragment extends Fragment{
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.news_body_fragment, container, false);
ImageView image = (ImageView) v.findViewById(R.id.imageView2);
TextView textView = (TextView) v.findViewById(R.id.body);
//textView.setMovementMethod(new ScrollingMovementMethod());
String body = getArguments().getString("body");
byte[] bmpArray = getArguments().getByteArray("image");
if(bmpArray != null) {
Bitmap bmp = BitmapFactory.decodeByteArray(bmpArray, 0, bmpArray.length);
image.setImageBitmap(bmp);
}
else
{
image.setImageDrawable(getResources().getDrawable(R.drawable.empirelogo));
}
textView.setText(body);
return v;
}
} }
My problem is the ScrollView, When I use this code my ScrollView doesn't scroll. 我的问题是ScrollView,当我使用此代码时,ScrollView无法滚动。 Image and TextView should look like this and they should scrolling together:
Image和TextView应该看起来像这样,它们应该一起滚动:
http://s18.postimg.org/5tu7dsmpl/3_E6_ABE7_F385_F5_EE469_EDD28_D9_C26055156_C987_E0_D5_D02_D7.jpg http://s18.postimg.org/5tu7dsmpl/3_E6_ABE7_F385_F5_EE469_EDD28_D9_C26055156_C987_E0_D5_D02_D7.jpg
But In my case they are don't scrolling. 但就我而言,它们不会滚动。 When I use ScrollView android:layout_height="wrap_content".
当我使用ScrollView android:layout_height =“ wrap_content”时。 It's look like this:
看起来像这样:
http://s30.postimg.org/e15g3scfl/23_C4_C2_C62_BBCF4_E22_E9_B2_A04_ED7923278_C418_DA6_CDF7_EF1.jpg http://s30.postimg.org/e15g3scfl/23_C4_C2_C62_BBCF4_E22_E9_B2_A04_ED7923278_C418_DA6_CDF7_EF1.jpg
Please help me who know the answer or solution. 请帮助我知道答案或解决方案的人。
Approach: Get
ScrollView
height and set the height of the ImageView to scrollViewHeight * 0.8 ononCreate
Method:方法:在
onCreate
方法上,获取ScrollView
高度并将ImageView的高度设置为scrollViewHeight * 0.8:
ScrollView scrollView = (ScrollView)findViewById(R.id.contentScrollView);
ImageView imageView = (ImageView)findViewById(R.id.contentImageView);
ViewTreeObserver vto = scrollView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
scrollView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
int width = scrollView.getMeasuredWidth();
int height = scrollView.getMeasuredHeight();
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(layoutParams.MATCH_PARENT, height * 0.8f);
imageView.setLayoutParams(layoutParams);
}
});
Check my answer here for the purpose of using OnGlobalLayoutListener
as a place to fetch the ScrollView
height. 在这里检查我的答案,以将
OnGlobalLayoutListener
用作获取ScrollView
高度的位置。
Values for weight should be swapped. 重量值应交换。 also set the
TextView
height as wrap_content
and remove the weight
: 还将
TextView
高度设置为wrap_content
并删除weight
:
<ScrollView
android:id="@+id/contentScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/contentImageView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:scaleType="centerCrop"
android:adjustViewBounds="false" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:text=""
android:textColor="#ffff"
android:id="@+id/body" />
</LinearLayout>
</ScrollView>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.