javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

android-无法在ScrollView中调整RelativeLayout的大小以填满整个屏幕

我有一个奇怪的问题,我不确定如何解决。 我在ScrollView中有一个RelativeLayout,此scrollView的高度设置为fill_parent。 RelativeLayout也是如此。 尽管如此,内容并不会填充整个屏幕,而只会到达此RelativeLayout中最后一个布局的wrap_content。

这是我的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res/com.pontai"
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <RelativeLayout
            android:id="@+id/relativeLayout2"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <LinearLayout
                android:id="@+id/linearLayout1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/relativeLayout3"
                android:layout_alignParentTop="true"
                android:layout_alignRight="@+id/relativeLayout5"
                android:layout_marginTop="5dp"
                android:orientation="horizontal" >

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:text="How much points you have here:"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <TextView
                    android:id="@+id/textViewTotalPoints1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:text="120"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
            </LinearLayout>

            <RelativeLayout
                android:id="@+id/relativeLayout4"
                android:layout_width="wrap_content"
                android:layout_height="80dp"
                android:layout_alignLeft="@+id/relativeLayout3"
                android:layout_below="@+id/linearLayout1"
                android:layout_marginTop="5dp"
                android:layout_toLeftOf="@+id/textView7"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/textView3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Ratings"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textViewPositivePoints"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <ImageView
                    android:id="@+id/imageView2"
                    android:layout_width="25dp"
                    android:layout_height="25dp"
                    android:layout_below="@+id/textView3"
                    android:layout_toLeftOf="@+id/textView3"
                    android:src="@drawable/thumbs_up_focused" />

                <TextView
                    android:id="@+id/textViewNegativePoints"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignRight="@+id/textView3"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="3dp"
                    android:text="22"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <TextView
                    android:id="@+id/textView5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBaseline="@+id/textViewNegativePoints"
                    android:layout_alignBottom="@+id/textViewNegativePoints"
                    android:layout_alignLeft="@+id/textView3"
                    android:layout_marginLeft="3dp"
                    android:text="33"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <ImageView
                    android:id="@+id/imageView3"
                    android:layout_width="25dp"
                    android:layout_height="25dp"
                    android:layout_alignTop="@+id/imageView2"
                    android:layout_toRightOf="@+id/textViewNegativePoints"
                    android:src="@drawable/thumbs_down_focused" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/relativeLayout5"
                android:layout_width="95dp"
                android:layout_height="80dp"
                android:layout_alignRight="@+id/relativeLayout3"
                android:layout_alignTop="@+id/relativeLayout4"
                android:layout_toRightOf="@+id/textView7"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/textView4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Comments"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <ImageView
                    android:id="@+id/imageView1"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:layout_alignParentBottom="true"
                    android:layout_centerHorizontal="true"
                    android:src="@drawable/speech_bubble" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/relativeLayout3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/relativeLayout4"
                android:layout_centerHorizontal="true"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp" >

                <TextView
                    android:id="@+id/textViewOfferName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="10dp"
                    android:text="Offer Name"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/textViewBusinessName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="35dp"
                    android:text="Business Name"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textViewBusinessAddress"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="60dp"
                    android:text="Business Address"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textViewNull1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="80dp"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <TextView
                    android:id="@+id/textViewTotalPoints"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/textViewNull1"
                    android:layout_centerHorizontal="true"
                    android:text="0/0"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                <Button
                    android:id="@+id/buttonUseNow"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/textViewTotalPoints"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="10dp"
                    android:text="@string/offer_details_use_now" />

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_below="@+id/buttonUseNow"
                    android:layout_marginTop="10dp"
                    android:text="@string/_terms_and_conditions_"
                    android:textAppearance="?android:attr/textAppearanceSmall" />

                <TextView
                    android:id="@+id/textViewTermsConditions"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_below="@+id/textView2"
                    android:layout_marginTop="2dp"
                    android:textAppearance="?android:attr/textAppearanceSmall" />
            </RelativeLayout>

            <TextView
                android:id="@+id/textView7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/relativeLayout5"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="30dp"
                android:text="e"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:visibility="invisible" />
        </RelativeLayout>
    </ScrollView>

</RelativeLayout>

任何人都对如何使RelativeLayout 2具有与ScrollView相同的高度有想法,也就是说,我希望它到达屏幕底部吗?

谢谢并恭祝安康,费利佩

trans by 2020-02-18T19:37:34Z

android-Recyclerview在更改项目

我有一个RecyclerView。 每行都有一个播放按钮,textview和Progressbar。 当单击“播放”按钮时,必须播放我的SD卡中的音频并必须进入进度栏问题是当我向下滚动recyclerview更改下一行的Progressbar时,意味着我一次可以在屏幕上容纳5个项目。 当我滚动到第六行时,第六行搜索栏突然改变。

public class ListAdapter extends RecyclerView.Adapter {

    private List<Historyitem> stethitems;
    public Context mContext;
    public Activity activity;
    public Handler mHandler;

    static MediaPlayer mPlayer;
    static Timer mTimer;

    public ListAdapter(Activity activity,Context mContext,List<Historyitem> stethitems) {
        this.stethitems = stethitems;
        this.mContext = mContext;
        this.activity = activity;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {

        View rootView = LayoutInflater.
                from(mContext).inflate(R.layout.stethoscopeadapteritem, null, false);
        RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);
        rootView.setLayoutParams(lp);
        mHandler = new Handler();
        return new MyViewHolder(rootView);
    }

    @Override
    public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, int position) {

        final Historyitem dataItem = stethitems.get(position);
        final MyViewHolder myViewHolder = (MyViewHolder) viewHolder;
        myViewHolder.progressplay.setProgress(0);
        myViewHolder.stethdatetime.setText(dataItem.getReported_Time());
        myViewHolder.stethhosname.setText(dataItem.getdiv());

        if(dataItem.getPatient_Attribute().replaceAll(" ","").equals("")){
            myViewHolder.stethdoctorname.setText(dataItem.getunit());
        } else {
            myViewHolder.stethdoctorname.setText(dataItem.getPatient_Attribute());
        }

        myViewHolder.stethstreamplay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                   FileDownload(dataItem.getmsg(),
                            myViewHolder.progressplay);

            }
        });
    }

    @Override
    public int getItemCount() {

        return stethitems.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {

        final CustomTextRegular stethdatetime;
        final CustomTextView stethhosname;
        final CustomTextBold stethdoctorname;
        final ImageButton stethstreamplay;
        final NumberProgressBar progressplay;

        public MyViewHolder(View itemView) {
            super(itemView);

            stethdatetime = (CustomTextRegular)
                    itemView.findViewById(R.id.stethdatetime);
            stethhosname = (CustomTextView)
                    itemView.findViewById(R.id.stethhosname);
            stethdoctorname = (CustomTextBold)
                    itemView.findViewById(R.id.stethdoctorname);
            stethstreamplay = (ImageButton)
                    itemView.findViewById(R.id.stethstreamplay);
            progressplay= (NumberProgressBar)
                    itemView.findViewById(R.id.progressplay);


        }
    }
    public void  FileDownload(final String downloadpath,

                                     final NumberProgressBar progressplay) {

        new AsyncTask<NumberProgressBar, Integer, NumberProgressBar>() {
            NumberProgressBar progress;
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                try {
                    if(mPlayer!=null){
                        mPlayer.stop();
                    }
                }catch (Exception e){
                }
                try {
                    if(mTimer != null){
                        mTimer.purge();
                        mTimer.cancel();
                    }
                }catch (Exception e){
                }
            }

            @Override
            protected NumberProgressBar doInBackground(NumberProgressBar... params) {
                int count;
                progress = progressplay;
                try {

                    final List<NameValuePair> list = new ArrayList<NameValuePair>();
                    list.add(new BasicNameValuePair("pid",id));

                    URL url = new URL(Config.requestfiledownload + "?path=" +
                            downloadpath);
                    URLConnection connection = url.openConnection();
                    connection.connect();

                    int lenghtOfFile = connection.getContentLength();
                    // download the file
                    InputStream input = new BufferedInputStream(url.openStream());
                    OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory() +
                            "record.wav");
                    byte data[] = new byte[1024];
                    long total = 0;
                    while ((count = input.read(data)) != -1) {
                        total += count;
                        // publishing the progress....
                        publishProgress((int) (total * 100 / lenghtOfFile));
                        output.write(data, 0, count);
                    }
                    output.flush();
                    output.close();
                    input.close();
                } catch (Exception e) {

                }
                return progress;
            }
            @Override
            protected void onPostExecute(final NumberProgressBar numberProgressBar) {
                super.onPostExecute(numberProgressBar);

                        try {
                            StartMediaPlayer(numberProgressBar);
                        } catch (Exception e){
                            e.printStackTrace();
                        }

            }
        }.execute();
    }

    public void StartMediaPlayer(final NumberProgressBar progressbar){
        Uri playuri = Uri.parse("file:///sdcard/record.wav");
        mPlayer = new MediaPlayer();
        mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mPlayer.reset();
        try {
            mPlayer.setDataSource(mContext, playuri);
        } catch (IllegalArgumentException e) {

        } catch (SecurityException e) {

        } catch (IllegalStateException e) {

        } catch (Exception e) {

        }
        try {
            mPlayer.prepare();
        } catch (Exception e) {

        }

        mPlayer.start();
        progressbar.setMax(mPlayer.getDuration());
        mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                if(mPlayer!=null) {
                    mPlayer.release();
                    progressbar.setProgress(0);
                }
                if(mTimer != null){
                    mTimer.purge();
                    mTimer.cancel();
                }
            }
        });
        mTimer = new Timer();
        mTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        progressbar.setProgress(mPlayer.getCurrentPosition());
                    }
                });
            }
        },0,500);
    }}
trans by 2019-11-11T05:39:05Z

android-工具栏不会以Scrollview折叠为CoordinatorLayou的子级

我正在尝试使用CoordinatorLayout遵循Google文档,但是CoordinatorLayout内部的ScrollView出现问题。 基本上,向下滚动时,工具栏通常会与RecyclerView或Listview一起折叠。 现在有了ScrollView,它不会折叠。

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        >

        <TextView
            android:id="@+id/tv_View"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/filler"
            style="@style/TextAppearance.AppCompat.Large"
            />

    </ScrollView>

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_scrollFlags="scroll|enterAlways"
            />

    </android.support.design.widget.AppBarLayout>

    </android.support.design.widget.CoordinatorLayout>
trans by 2019-10-09T19:16:14Z

xml - Android:ScrollView vs NestedScrollVi

ScrollViewNestedScrollView之间的差异有什么不同? 两者都延伸FrameLayout.我想深入了解他们两者的利弊。

trans by 2019-08-04T08:30:15Z

android - 以编程方式禁用ScrollView?

我想启用ScrollView并通过按钮单击禁用它。
禁用意味着如果ScrollView不在那里..并启用它返回ScrollView。

我想要的是因为我有一个带有文本图像的图库,并且在按钮上单击屏幕方向更改,因此在横向文本中文本会变大。 我想要ScrollView,因此图像不会伸展自身,文本变得不可读。

scrollview.Enabled=false / setVisibility(false)什么都没做。

XML:

<ScrollView 
android:id="@+id/QuranGalleryScrollView" 
android:layout_height="fill_parent" 
android:layout_width="fill_parent">
<Gallery android:id="@+id/Gallery" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:scrollbars="horizontal"></Gallery>
</ScrollView>

谢谢

Edit1:我不能使用Visibility(消失),因为那也会隐藏Gallery,我想要的是隐藏ScrollView的效果。 当有ScrollView时,Gallery中的图像变为scrollabale并且不适合屏幕,所以你必须滚动才能看到整个图像,我不想在按钮点击时禁用/启用它。

我试过这个:

((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setOnTouchListener(null);
                        ((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setHorizontalScrollBarEnabled(false);
                        ((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setVerticalScrollBarEnabled(false);
                        ((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setEnabled(false);

但是图库中的图像仍然是可滚动的,不适合屏幕..这是什么解决方案?

trans by 2019-07-27T03:20:16Z

android - 如何防止滚动视图在加载数据后滚动到webview?

所以我有一个引人入胜的问题。 尽管我不是手动或以编程方式滚动我的视图,但我的WebView会在其内部数据加载后自动滚动到。

我在viewpager中有一个片段。 当我第一次加载寻呼机时,它按预期工作,并显示所有内容。 但是一旦我“翻页”,数据就会加载,WebView会弹出到页面顶部,将视图隐藏在它上面,这是不可取的。

有谁知道如何防止这种情况发生?

我的布局看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/background" >

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

        <TextView
            android:id="@+id/article_title"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="2dp"
            android:text="Some Title"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="@color/article_title"
            android:textStyle="bold" />

        <LinearLayout
            android:id="@+id/LL_Seperator"
            android:layout_width="fill_parent"
            android:layout_height="1dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp"
            android:background="@color/text"
            android:orientation="horizontal" >
        </LinearLayout>

        <WebView
            android:id="@+id/article_content"
            android:layout_width="match_parent"
            android:layout_marginRight="10dp"
            android:layout_marginLeft="10dp"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/article_link"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginRight="10dp"
            android:layout_marginLeft="10dp"
            android:text="View Full Article"
            android:textColor="@color/article_title"
            android:textStyle="bold" />
    </LinearLayout>

</ScrollView>

我也没注重任何事情。 默认情况下,它似乎在加载后自动滚动到WebView。 我该如何防止这种情况?

trans by 2019-07-13T22:23:24Z

Android:ScrollView强制到底

我希望ScrollView能够从底部开始。 任何方法?

trans by 2019-05-13T17:38:28Z

Android - 如何制作可滚动的constraintlayout?

我想制作一个允许我使用约束布局向下滚动的布局,但我不知道如何去做。 如果scrollview是这样的constraintlayout的父级吗?

<?xml version="1.0" encoding="utf-8"?>


<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">


<android.support.constraint.ConstraintLayout
    android:id="@+id/Constraint"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


</android.support.constraint.ConstraintLayout>

或者相反? 也许有人可以指点我这方面的好教程或举个例子,我似乎无法找到一个。

此外,我不知道这是一个错误或一些配置,我没有设置,但我已经看到像这样的图像,蓝图“蓝色矩形”之外的一些组件,但他们是可见的,而在我身边,如果我 将一个组件放在“白色空间”上我无法看到它或将其移动到任何地方,它出现在组件树上。

UPDATE

我找到了一种方法,可以在设计工具中滚动约束布局,使用horiontal准线向下推约束布局边框并将其扩展到设备之外,之后您可以使用引导线作为约束布局的新底部 锚定组件。

trans by 2019-04-25T04:14:31Z

android - 弹出软键盘时页面滚动

我有<ScrollView>布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/my_scrollview"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >

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

        <EditText
            android:id="@+id/input_one"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:inputType="number" >

         <EditText
            android:id="@+id/input_two"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:inputType="number" >

         <EditText
            android:id="@+id/input_three"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:inputType="number" >

          <Button
            android:id="@+id/ok_btn"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="20dp"
            android:text="@string/ok_str" />

      </LinearLayout>
</ScrollView>

如上所示,简单布局包含三个输入字段和一个“确定”按钮。

我使用上面的布局运行我的应用程序,当我点击第一个输入字段(<ScrollView>)时,软键盘将从屏幕底部弹出,它隐藏第三个输入字段和“确定”按钮。

由于我使用<ScrollView>,我想我可以向上滚动页面以查看第三个输入字段和软键盘隐藏的“确定”按钮,但页面不可滚动。 为什么? 如何摆脱它? 基本上,我想看到每个输入字段和“确定”按钮,甚至软键盘弹出。

trans by 2019-04-16T20:31:44Z

android - ScrollView中的RecyclerView无法正常工作

我正在尝试在相同的布局中实现包含RecyclerView和ScrollView的布局。

布局模板:

<RelativeLayout>
    <ScrollView android:id="@+id/myScrollView">
       <unrelated data>...</unrealated data>

           <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/my_recycler_view"
            />
    </ScrollView>


</RelativeLayout>

问题:我可以滚动到viewGroup的最后一个元素

我试过的事情:

  1. 卡片视图里面viewGroup(现RecyclerView包含ScrollView) - 可以看到卡片直到CardView
  2. 最初的想法是实现这个viewGroup使用RecyclerView而不是ScrollView其中一个的视图类型是CardView但我得到了与ScrollView完全相同的结果
trans by 2019-04-06T01:19:42Z

android - ScrollView中的RecyclerView无法正常工作

我正在尝试在相同的布局中实现包含RecyclerView和ScrollView的布局。

布局模板:

<RelativeLayout>
    <ScrollView android:id="@+id/myScrollView">
       <unrelated data>...</unrealated data>

           <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/my_recycler_view"
            />
    </ScrollView>


</RelativeLayout>

问题:我可以滚动到viewGroup的最后一个元素

我试过的事情:

  1. 卡片视图里面viewGroup(现RecyclerView包含ScrollView) - 可以看到卡片直到CardView
  2. 最初的想法是实现这个viewGroup使用RecyclerView而不是ScrollView其中一个的视图类型是CardView但我得到了与ScrollView完全相同的结果
trans by 2019-03-21T19:21:21Z

android - ScrollView Touch Handling中的HorizontalScrollView

我有一个ScrollView环绕我的整个布局,以便整个屏幕可滚动。 我在这个ScrollView中的第一个元素是一个HorizontalScrollView块,它具有可以水平滚动的功能。 我在horizontalscrollview中添加了一个ontouchlistener来处理触摸事件并强制视图“捕捉”到ACTION_UP事件上最近的图像。

所以我想要的效果就像股票android主屏幕,你可以从一个滚动到另一个,当你举起手指时,它会捕捉到一个屏幕。

这一切都很有效,除了一个问题:我需要从左到右几乎完全水平滑动,以便ACTION_UP进行注册。 如果我至少垂直滑动(我认为许多人往往会在他们的手机上左右滑动),我会收到ACTION_CANCEL而不是ACTION_UP。 我的理论是,这是因为横向视图滚动视图位于滚动视图内,并且滚动视图正在劫持垂直触摸以允许垂直滚动。

如何在水平滚动视图中禁用滚动视图的触摸事件,但仍允许在滚动视图中的其他位置正常垂直滚动?

这是我的代码示例:

public class HomeFeatureLayout extends HorizontalScrollView {
private ArrayList<ListItem> items = null;
private GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
private static final int SWIPE_MIN_DISTANCE = 5;
private static final int SWIPE_THRESHOLD_VELOCITY = 300;
private int activeFeature = 0;

public HomeFeatureLayout(Context context, ArrayList<ListItem> items){
    super(context);
    setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
    setFadingEdgeLength(0);
    this.setHorizontalScrollBarEnabled(false);
    this.setVerticalScrollBarEnabled(false);
    LinearLayout internalWrapper = new LinearLayout(context);
    internalWrapper.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    internalWrapper.setOrientation(LinearLayout.HORIZONTAL);
    addView(internalWrapper);
    this.items = items;
    for(int i = 0; i< items.size();i++){
        LinearLayout featureLayout = (LinearLayout) View.inflate(this.getContext(),R.layout.homefeature,null);
        TextView header = (TextView) featureLayout.findViewById(R.id.featureheader);
        ImageView image = (ImageView) featureLayout.findViewById(R.id.featureimage);
        TextView title = (TextView) featureLayout.findViewById(R.id.featuretitle);
        title.setTag(items.get(i).GetLinkURL());
        TextView date = (TextView) featureLayout.findViewById(R.id.featuredate);
        header.setText("FEATURED");
        Image cachedImage = new Image(this.getContext(), items.get(i).GetImageURL());
        image.setImageDrawable(cachedImage.getImage());
        title.setText(items.get(i).GetTitle());
        date.setText(items.get(i).GetDate());
        internalWrapper.addView(featureLayout);
    }
    gestureDetector = new GestureDetector(new MyGestureDetector());
    setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (gestureDetector.onTouchEvent(event)) {
                return true;
            }
            else if(event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL ){
                int scrollX = getScrollX();
                int featureWidth = getMeasuredWidth();
                activeFeature = ((scrollX + (featureWidth/2))/featureWidth);
                int scrollTo = activeFeature*featureWidth;
                smoothScrollTo(scrollTo, 0);
                return true;
            }
            else{
                return false;
            }
        }
    });
}

class MyGestureDetector extends SimpleOnGestureListener {
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        try {
            //right to left 
            if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                activeFeature = (activeFeature < (items.size() - 1))? activeFeature + 1:items.size() -1;
                smoothScrollTo(activeFeature*getMeasuredWidth(), 0);
                return true;
            }  
            //left to right
            else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                activeFeature = (activeFeature > 0)? activeFeature - 1:0;
                smoothScrollTo(activeFeature*getMeasuredWidth(), 0);
                return true;
            }
        } catch (Exception e) {
            // nothing
        }
        return false;
    }
}

}

trans by 2019-03-04T16:11:20Z

滚动vi里面的Android列表视图

我有一个Android布局,其中包含scrollView,其中包含许多元素。 在foodItemActvity_linearLayout_fragments的底部,我有一个scrollView,然后由适配器填充。

我遇到的问题是,android是从scrollView中排除foodItemActvity_linearLayout_fragments,因为scrollView已经具有可滚动功能。 我希望listView与内容一样长,并且主滚动视图可滚动。

我怎样才能实现这种行为?

这是我的主要布局:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="2"
    android:fillViewport="true"
    android:gravity="top" >

    <LinearLayout
        android:id="@+id/foodItemActvity_linearLayout_fragments"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
    </LinearLayout>

</ScrollView>

然后我以编程方式将我的组件添加到linearlayour,其ID为:foodItemActvity_linearLayout_fragments.下面是加载到该linearlayout中的一个视图。 这是给我卷轴问题的那个。

<?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="wrap_content"
    android:orientation="vertical" >

    <TextView
       android:id="@+id/fragment_dds_review_textView_label"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Reviews:"
       android:textAppearance="?android:attr/textAppearanceMedium" />

   <ListView
       android:id="@+id/fragment_dds_review_listView"
       android:layout_width="match_parent"
       android:layout_height="wrap_content">
   </ListView>
</LinearLayout>

我的适配器然后填写此列表视图。

当我点击主滚动视图时,这是来自android层次结构查看器的图像:

Android List View inside a scroll view

如您所见,它排除了评论listView。

我应该能够向下滚动页面并查看8条评论,但它只向我展示了那些3,我可以滚动查看评论的小部分。 我想要一个全局页面滚动

trans by 2019-02-25T04:26:57Z

android - 如何在不折叠的情况下将ListView放入ScrollView?

我一直在寻找这个问题的解决方案,我能找到的唯一答案似乎是“不要将ListView放入ScrollView”。 我还没有看到任何真正的解释为什么。 我似乎找到的唯一原因是Google认为你不应该这样做。 好吧,我做了,所以我做到了。

所以问题是,如何将ListView放入ScrollView而不将其折叠到最小高度?

trans by 2019-01-27T03:30:08Z

1 共1页