gpt4 book ai didi

android - fragment 内的 ScrollView 不滚动

转载 作者:太空狗 更新时间:2023-10-29 14:51:59 27 4
gpt4 key购买 nike

在我的 Activity 中,我有一个 FrameLayout,它应该用作 fragment 的容器。

在我的 fragment 中,我得到了一个没有响应的 ScrollViewScrollView 包含 TextViewandroid:layout_height="wrap_content",我的 java 代码中的文本明显长于 的大小 ScrollView

我的 fragment xml:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<ImageView
android:layout_width="@dimen/bookview.imageWidth"
android:layout_height="250dp"
android:id="@+id/bookView.image"/>
<TextView
android:textSize="@dimen/custom_book_text"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_toEndOf="@id/bookView.image"
android:id="@+id/bookView.name"/>
<TextView
android:textSize="@dimen/custom_book_text"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_toEndOf="@id/bookView.image"
android:layout_below="@id/bookView.name"
android:id="@+id/bookView.author"/>
<TextView
android:textSize="@dimen/custom_book_text"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_toEndOf="@id/bookView.image"
android:layout_below="@id/bookView.author"
android:id="@+id/bookView.pages"/>
<TextView
android:textSize="@dimen/custom_book_text"

android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_toEndOf="@id/bookView.image"
android:layout_below="@id/bookView.pages"
android:id="@+id/bookView.category"/>
<TextView
android:textSize="@dimen/custom_book_text"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_toEndOf="@id/bookView.image"
android:layout_below="@id/bookView.category"
android:id="@+id/bookView.publishingDate"/>
</RelativeLayout>
<ScrollView
android:layout_height="200dp"
android:layout_width="match_parent"
android:layout_gravity="end">
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="@dimen/custom_book_text"
android:id="@+id/bookView.description"/>
</ScrollView>
</LinearLayout>

Activity 的xml:

    <android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/use.drawer">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/user_custom_book_height"
android:id="@+id/user.customBookContainer"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:id="@+id/user.container"/>
</LinearLayout>

<include
layout="@layout/navigation_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"/>
</android.support.v4.widget.DrawerLayout>

我使用 FrameLayout 是因为我想在运行时更改那个区域的 fragment 。更好的主意?我喜欢听。

我试图降低 ScrollView 的高度。我的 fragment java 代码:

public class BookView extends Fragment {

private Bitmap bitmap;
private String name;

public static BookView newInstance(String book,Bitmap bitmap) {

Bundle args = new Bundle();
BookView fragment = new BookView();
fragment.bitmap = bitmap;
fragment.name = book;
fragment.setArguments(args);
return fragment;
}

public BookView() {
// Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_book_view, container, true);
Backend backend = BackendFactory.getInstance();
try {
Book b = backend.readBook(name);
TextView textView = (TextView)v.findViewById(R.id.bookView_name);
textView.setText(b.getBookName());
textView = (TextView)v.findViewById(R.id.bookView_author);
textView.setText(b.getAuthor());
textView = (TextView)v.findViewById(R.id.bookView_category);
textView.setText(b.getCategory().name());
textView = (TextView)v.findViewById(R.id.bookView_description);
textView.setText(b.getDescription());
textView = (TextView)v.findViewById(R.id.bookView_pages);
textView.setText(Integer.toString(b.getPages()));
textView = (TextView)v.findViewById(R.id.bookView_publishingDate);
textView.setText(b.getPublishingDate());
final ImageView imageView = (ImageView)v.findViewById(R.id.bookView_image);
if(bitmap != null){
imageView.setImageBitmap(bitmap);
} else{
ImageLoader imageLoader = new ImageLoader();
imageLoader.setListener(new ImageLoader.ImageTaskListener() {
@Override
public void onActionEnd() {}

@Override
public void onImageDownload(Bitmap bitmap) {
imageView.setImageBitmap(bitmap);
}
});
imageLoader.execute(b.getImage());
}
}
catch (Exception e) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(e.getMessage());
builder.create().show();
}

return inflater.inflate(R.layout.fragment_book_view, container, false);
}
}

imageLoader 是我写的一个类,它扩展了 AsyncTask 以从 url 下载图像并在准备好时更新 UI。

最佳答案

我认为此 fragment 的其他部分(TextViews 和 ImageViews)充满了屏幕的所有区域,而 ScrollView 呈现在屏幕外。我建议您将所有布局放在 ScrollView 中。像这样:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="end">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<ImageView
android:id="@+id/bookView.image"
android:layout_width="@dimen/bookview.imageWidth"
android:layout_height="250dp"/>

<TextView
android:id="@+id/bookView.name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/bookView.image"
android:textSize="@dimen/custom_book_text"/>

<TextView
android:id="@+id/bookView.author"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/bookView.name"
android:layout_toEndOf="@id/bookView.image"
android:textSize="@dimen/custom_book_text"/>

<TextView
android:id="@+id/bookView.pages"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/bookView.author"
android:layout_toEndOf="@id/bookView.image"
android:textSize="@dimen/custom_book_text"/>

<TextView
android:id="@+id/bookView.category"

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/bookView.pages"
android:layout_toEndOf="@id/bookView.image"
android:textSize="@dimen/custom_book_text"/>

<TextView
android:id="@+id/bookView.publishingDate"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/bookView.category"
android:layout_toEndOf="@id/bookView.image"
android:textSize="@dimen/custom_book_text"/>
</RelativeLayout>

<TextView
android:id="@+id/bookView.description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/custom_book_text"/>

</LinearLayout>

关于android - fragment 内的 ScrollView 不滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34535188/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com