ScrollView innerhalb fragment nicht scrollen

In meiner Tätigkeit habe ich eine FrameLayout, dass wohl die Verwendung als container für die Scherben.

In meinem fragment bekam ich einen ScrollView nicht reagieren. ScrollView enthält TextView set android:layout_height="wrap_content" mit text von meinem java-code, der deutlich länger als die Größe des ScrollView.

Meine xml-fragment:

    <?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>

xml der Tätigkeit:

    <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>

benutze ich FrameLayout, weil ich mich ändern will, das fragment in diesem Bereich,in der runtime.bessere Idee? ich mag zu hören.

habe ich versucht, decrese die Höhe der ScrollView.
mein java-code-fragment:

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 ist eine Klasse, die ich schrieb,es extened AsyncTask für das laden Sie Bild aus url, und aktualisieren Sie die Benutzeroberfläche, wenn Sie es bereit.

  • warum sind Sie mit framelayout für Fragmente, die dafür einen bestimmten Grund?
  • können Sie Ihre code -, screenshot wäre besser ?
  • versuchen Sie es mit linearer Anordnung oder relative anstelle von framelayout.
  • Ihr text eindeutig entweder nicht lange genug oder Ihr über scrollview widgets mehr Raum einnimmt, so ist es nicht sichtbar in der Benutzeroberfläche. überprüfen Sie erneut, oder posten Sie Ihre screenshot@user4349397
InformationsquelleAutor user4349397 | 2015-12-30
Schreibe einen Kommentar