私はXMLレイアウトファイルを持っていますが、テキストはスクリーンサイズに収まる以上のものです。 ScrollView
を作るために何をする必要がありますか?
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:stretchColumns="1" >
<TableRow>
<ImageView
Android:id="@+id/imageView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="5dip"
Android:layout_marginTop="10dip"
Android:layout_marginRight="5dip"
Android:tint="#55ff0000"
Android:src="@drawable/icon" />
</TableRow>
<TableRow>
<TextView
Android:id="@+id/name"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Name " />
<TextView Android:id="@+id/name1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Veer" />
</TableRow>
<TableRow>
<TextView Android:id="@+id/age"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Age" />
<TextView Android:id="@+id/age1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="23" />
</TableRow>
<TableRow>
<TextView Android:id="@+id/gender"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Gender" />
<TextView Android:id="@+id/gender1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Male" />
</TableRow>
<TableRow>
<TextView Android:id="@+id/profession"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Professsion" />
<TextView Android:id="@+id/profession1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Mobile Developer" />
</TableRow>
<TableRow>
<TextView Android:id="@+id/phone"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Phone" />
<TextView Android:id="@+id/phone1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="03333736767" />
</TableRow>
<TableRow>
<TextView Android:id="@+id/email"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Email" />
<TextView Android:id="@+id/email1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="[email protected]" />
</TableRow>
<TableRow>
<TextView Android:id="@+id/hobby"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Hobby" />
<TextView Android:id="@+id/hobby1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Play Games" />
</TableRow>
<TableRow>
<TextView Android:id="@+id/ilike"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" I like" />
<TextView Android:id="@+id/ilike1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Java, Objective-c" />
</TableRow>
<TableRow>
<TextView Android:id="@+id/idislike"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" I dislike" />
<TextView Android:id="@+id/idislike1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Microsoft" />
</TableRow>
<TableRow>
<TextView Android:id="@+id/address"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Address" />
<TextView Android:id="@+id/address1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Johar Mor" />
</TableRow>
</TableLayout>
トップレベルのレイアウトをScrollViewにするだけです。
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fillViewport="true">
<TableLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:stretchColumns="1">
<!-- everything you already have -->
</TableLayout>
</ScrollView>
2つの選択肢があります。レイアウト全体をスクロール可能にするか、またはTextViewのみをスクロール可能にすることができます。
最初のケースでは、
<?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" >
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="fill_parent" >
<TableLayout
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:stretchColumns="1" >
<TableRow>
<ImageView
Android:id="@+id/imageView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="5dip"
Android:layout_marginRight="5dip"
Android:layout_marginTop="10dip"
Android:src="@drawable/icon"
Android:tint="#55ff0000" >
</ImageView>
</TableRow>
<TableRow>
<TextView
Android:id="@+id/name"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Name " >
</TextView>
<TextView
Android:id="@+id/name1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Veer" >
</TextView>
</TableRow>
<TableRow>
<TextView
Android:id="@+id/age"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Age" >
</TextView>
<TextView
Android:id="@+id/age1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="23" >
</TextView>
</TableRow>
<TableRow>
<TextView
Android:id="@+id/gender"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Gender" >
</TextView>
<TextView
Android:id="@+id/gender1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Male" >
</TextView>
</TableRow>
<TableRow>
<TextView
Android:id="@+id/profession"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Professsion" >
</TextView>
<TextView
Android:id="@+id/profession1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Mobile Developer" >
</TextView>
</TableRow>
<TableRow>
<TextView
Android:id="@+id/phone"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Phone" >
</TextView>
<TextView
Android:id="@+id/phone1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="03333736767" >
</TextView>
</TableRow>
<TableRow>
<TextView
Android:id="@+id/email"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Email" >
</TextView>
<TextView
Android:id="@+id/email1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="[email protected]" >
</TextView>
</TableRow>
<TableRow>
<TextView
Android:id="@+id/hobby"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Hobby" >
</TextView>
<TextView
Android:id="@+id/hobby1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Play Games" >
</TextView>
</TableRow>
<TableRow>
<TextView
Android:id="@+id/ilike"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" I like" >
</TextView>
<TextView
Android:id="@+id/ilike1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Java, Objective-c" >
</TextView>
</TableRow>
<TableRow>
<TextView
Android:id="@+id/idislike"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" I dislike" >
</TextView>
<TextView
Android:id="@+id/idislike1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Microsoft" >
</TextView>
</TableRow>
<TableRow>
<TextView
Android:id="@+id/address"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:padding="3dip"
Android:text=" Address" >
</TextView>
<TextView
Android:id="@+id/address1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:gravity="left"
Android:text="Johar Mor" >
</TextView>
</TableRow>
<Relativelayout>
</Relativelayout>
</TableLayout>
</RelativeLayout>
</ScrollView>
または、先に述べたように、TextViewにはscrollViewを単独で使用できます。
ScrollView
を使用することはそれほど難しくありません。あなたはただあなたのレイアウトにそれを追加して、あなたが中にスクロールしたいものなら何でも置くことができます。 ScrollView
は1人の子供しか受け取らないので、いくつかのものを中に入れたい場合は、最初のものをLinearLayout
のようなものにする必要があります。
<ScrollView
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical">
<!-- things to scroll -->
</LinearLayout>
</ScrollView>
水平方向にスクロールしたい場合は、 HorizontalScrollView
を使用してください。
この記事 で説明しているように、ScrollView
の内容を画面いっぱいに表示したい場合があります。たとえば、READMEの最後にボタンがいくつかあったとします。たとえテキストがスクロールしなくても、ボタンは常にテキストの最後と画面の下部にあるようにします。
内容がスクロールすれば、すべて問題ありません。ただし、コンテンツが画面のサイズより小さい場合、ボタンは一番下にありません。
これは、fillViewPort
にScrollView
を使用し、コンテンツにレイアウトの重みを使用することで解決できます。 fillViewPort
を使用すると、ScrollView
が親領域を埋めます。 LinearLayout
内のビューの1つにlayout_weight
を設定すると、そのビューは余分なスペースを埋めるように拡張されます。
これがXMLです
<?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:fillViewport="true"> <--- fillViewport
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical">
<TextView
Android:id="@+id/textview"
Android:layout_height="0dp" <---
Android:layout_weight="1" <--- set layout_weight
Android:layout_width="match_parent"
Android:padding="6dp"
Android:text="hello"/>
<LinearLayout
Android:layout_height="wrap_content" <--- wrap_content
Android:layout_width="match_parent"
Android:background="@Android:drawable/bottom_bar"
Android:gravity="center_vertical">
<Button
Android:layout_width="0dp"
Android:layout_weight="1"
Android:layout_height="wrap_content"
Android:text="Accept" />
<Button
Android:layout_width="0dp"
Android:layout_weight="1"
Android:layout_height="wrap_content"
Android:text="Refuse" />
</LinearLayout>
</LinearLayout>
</ScrollView>
この回答のアイディアは、現在削除されている以前の回答から来ました( 10Kユーザーの場合は )。この答えの内容は/の更新と適応です - この記事 。
ScrollView は特殊なタイプの FrameLayout で、ユーザーは物理的なディスプレイよりも多くのスペースを占めるビューのリストをスクロールできます。属性をいくつか追加するだけです。 。
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:fillViewport="true"
Android:scrollbars = "vertical"
Android:scrollbarStyle="insideInset"
>
<TableLayout
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:stretchColumns="1"
>
<!-- Add here which you want -->
</TableLayout>
</ScrollView>
上で述べたように、あなたはそれをScrollView
...の中に置くことができます、そしてあなたがScroll Viewを水平にしたいならHorizontalScrollView
...の中にそれを置きます:
<HorizontalScrollView>
<ScrollView>
<!-- SOME THING -->
</ScrollView>
</HorizontalScrollView>
layout_width
およびlayout_height
コースを設定します。
テキストビューでデータをスクロールするには、これをテキストビューに使用します。他にもレイアウトを追加することもできますし、上記のようにレイアウトにスクロールビューを追加することもできます。
/ ** Android:xmlレイアウトのテキストビューではscrollable = true。
TextView txtScroll = (TextView) findViewById(R.id.txt1);
txtScroll.setMovementMethod(new ScrollingMovementMethod());
* //
TableLayoutをScrollView Layout内に配置します。これで問題は解決します。