User Tools

Site Tools


android_learning:headfirst_android_development_notes:chapter_5

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
android_learning:headfirst_android_development_notes:chapter_5 [2016/01/24 02:08] mithatandroid_learning:headfirst_android_development_notes:chapter_5 [2016/01/24 04:44] – [p. 219] mithat
Line 1: Line 1:
-<WRAP center round info 60%> 
-Under development. 
-</WRAP> 
- 
 ====== Chapter 5 notes ====== ====== Chapter 5 notes ======
  
Line 81: Line 77:
  
 ===== p. 205 ===== ===== p. 205 =====
-Create a throwaway project for this final section of the chapter and experiment with as many of the Views covered here as possible.+Create a throwaway project for this final section of the chapter and experiment with as many of the Views covered as possible. 
 + 
 +===== p. 215 ===== 
 +A good source of images that you can use without worrying about licensing is [[https://openclipart.org/|openclipart.org]]. Don't expect production-quality images though. 
 + 
 +Another good resource is, [[https://www.iconfinder.com/|iconfinder.com]], but you have to take care to meet the licensing requirements of each image. 
 + 
 +<WRAP center round tip 90%> 
 +**Be careful about file names.**\\ Image file names can only have lowercase letters, numbers, and the underscore in them. 
 +</WRAP> 
 + 
 +===== p. 219 ===== 
 +Your text suggest a ScrollView can be used as a root ViewGroup: 
 +<file xml content_main.xml> 
 +<?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:paddingBottom="@dimen/activity_vertical_margin" 
 +    android:paddingLeft="@dimen/activity_horizontal_margin" 
 +    android:paddingRight="@dimen/activity_horizontal_margin" 
 +    android:paddingTop="@dimen/activity_vertical_margin" 
 +    tools:context="com.hfad.scrollviewdemo.MainActivity" 
 +    tools:showIn="@layout/activity_main"> 
 + 
 +    <LinearLayout 
 +        android:layout_width="match_parent" 
 +        android:layout_height="wrap_content" 
 +        android:orientation="vertical"> 
 + 
 +        <TextView 
 +            android:layout_width="wrap_content" 
 +            android:layout_height="wrap_content" 
 +            android:text="Top!" /> 
 +         
 +        <TextView 
 +            android:layout_width="wrap_content" 
 +            android:layout_height="wrap_content" 
 +            android:text="Hello World!" /> 
 +        ... 
 + 
 +        <TextView 
 +            android:layout_width="wrap_content" 
 +            android:layout_height="wrap_content" 
 +            android:text="Bottom!" /> 
 +    </LinearLayout> 
 + 
 +</ScrollView> 
 + 
 +</file> 
 + 
 +However, in my experience this leads to unpredictable results (top of the ScrollView being obscured, etc.). A more reliable strategy seems to be nesting a ScrollView inside a root ViewGroups: 
 +<file xml content_main.xml> 
 +<?xml version="1.0" encoding="utf-8"?> 
 +<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" 
 +    android:paddingLeft="@dimen/activity_horizontal_margin" 
 +    android:paddingRight="@dimen/activity_horizontal_margin" 
 +    android:paddingTop="@dimen/activity_vertical_margin" 
 +    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
 +    tools:context="com.hfad.scrollviewdemo.MainActivity" 
 +    tools:showIn="@layout/activity_main"> 
 + 
 +    <TextView 
 +        android:layout_width="wrap_content" 
 +        android:layout_height="wrap_content" 
 +        android:text="Outside ScrollView" 
 +        android:id="@+id/textView" /> 
 + 
 +    <ScrollView 
 +        android:layout_width="match_parent" 
 +        android:layout_height="match_parent" 
 +        android:id="@+id/scrollView" 
 +        android:layout_below="@+id/textView"> 
 + 
 +        <LinearLayout 
 +            android:layout_width="match_parent" 
 +            android:layout_height="wrap_content" 
 +            android:orientation="vertical"> 
 +             
 +            <TextView 
 +                android:layout_width="wrap_content" 
 +                android:layout_height="wrap_content" 
 +                android:text="Top" /> 
 + 
 +            <TextView 
 +                android:layout_width="wrap_content" 
 +                android:layout_height="wrap_content" 
 +                android:text="Hello World!" /> 
 +            ... 
 + 
 +            <TextView 
 +                android:layout_width="wrap_content" 
 +                android:layout_height="wrap_content" 
 +                android:text="Bottom" /> 
 +        </LinearLayout> 
 +    </ScrollView> 
 + 
 +</RelativeLayout> 
 +</file> 
 + 
 +Android Studio produces a warning stating that the ''android:layout_height'' attribute of the LinearLayout inside the ScrollView should be set to ''wrap_content'' rather than ''match_parent''
 + 
 +<WRAP center round info 90%> 
 +In the examples above, I am using string literals for the text attributes---only because this is throwaway, quick-n-dirty, prove-a-concept code. 
 +</WRAP> 
  
 ===== Additional notes ===== ===== Additional notes =====
android_learning/headfirst_android_development_notes/chapter_5.txt · Last modified: 2016/01/24 04:45 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki