title: Problems vertically aligning a Button and horizontally oriented LinearLayout within a vertcally oriented LinearLayout
body: <p>Im posting from my phone so please excuse stupid typos and formatting issues. </p>
  
  <p>I have an activity which lists saved games that the player can load.  </p>
  
  <p>I created a simple layout xml file which defines a ScrollView. On load, I grab all the saved games and programatically add a view for each saved game to a vertically oriented LinearLayout child of the ScrollView. </p>
  
  <p>The view for each game consists of a Horizontally oriented LinearLayout which in turn contains a Button and a vertically oriented LinearLayout.   That LinearLayout in turn contains some TextViews and ImageViews (and one more LinearLayout which I'm ommitting here for the sake of clarity).</p>
  
  <p>The hierarchy looks something like this (some details omitted).  </p>
  
  <pre><code> ScrollView
        LinearLayout - vertical 
             Each saved game:
             LinearLayout - horizontal 
                  Button - load game
                  LinearLayout - vertical 
                       TextView - game name
                       TextView - date string
  </code></pre>
  
  <p><strong>My problem:</strong></p>
  
  <p>I would like the top of the button and the "game name" texview to be vertically aligned but the TextView (or maybe it's LinearLayout parent) has some rogue padding on top that I can't get rid of. See screenshot for details. </p>
  
  <p><img src="https://i.imgur.com/sTUgE.png" alt="alt"></p>
  
  <p>LoadSaved class:
  Note: mScrollView is badly named. It refers to the ScrollView's child LinearLayout. </p>
  
  <pre><code>   public class LoadSaved extends Activity {
       public LinearLayout mScrollView;
       private MinerDb mDb;
  
        public void onCreate(Bundle b) { 
               super.onCreate(b);
               setContentView(R.layout.loadsaved);
               mDb = new MinerDb(this);
  
              mScrollView = (LinearLayout) findViewById(R.id.load_scroll_view);
              Bundle[] savedGames = mDb.getSavedGames();
  
              for (int i = 0; i &lt; savedGames.length; i++) {
                   Bundle game = savedGames[i];
  
                   final int gameId = game.getInt("gameId");
                   String name = game.getString("name");
                   String date = game.getString("date");
  
                   Bundle player = game.getBundle("player");
                   int playerMoney = player.getInt("money");
                   int playerHealth = player.getInt("health");
  
                   LinearLayout gameContainer = new LinearLayout(getApplicationContext());
                   gameContainer.setPadding(5, 5, 5, 5);
                   gameContainer.setGravity(Gravity.TOP);
                   gameContainer.setOrientation(LinearLayout.HORIZONTAL);
                   gameContainer.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
  
                   Button loadButton = new Button(getApplicationContext());
                   loadButton.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
                   loadButton.setText("Load");
  
  
                   LinearLayout gameInfo = new LinearLayout(getApplicationContext());
                   gameInfo.setOrientation(LinearLayout.VERTICAL);
                   gameInfo.setPadding(10,0,10,10);
                   gameInfo.setGravity(Gravity.TOP);
                   gameInfo.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
  
                   TextView nameView = new TextView(getApplicationContext());
                   nameView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
                   nameView.setGravity(Gravity.TOP);
                   nameView.setText(name);
  
                   TextView dateView = new TextView(getApplicationContext());
                   dateView.setPadding(5,0,0,0);
                   dateView.setGravity(Gravity.TOP);
                   dateView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
                   dateView.setText(date);
  
                   LinearLayout playerView = new LinearLayout(getApplicationContext());
                   playerView.setOrientation(LinearLayout.HORIZONTAL);
                   playerView.setPadding(5,0,0,0);
                   playerView.setGravity(Gravity.TOP);
                   playerView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
  
                   TextView playerMoneyView = new TextView(getApplicationContext());
                   playerMoneyView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
                   playerMoneyView.setPadding(0,0,10,0);
                   playerMoneyView.setTextColor(Color.GREEN);
                   playerMoneyView.setText("$" + playerMoney);
  
                  TextView playerHealthView = new TextView(getApplicationContext());
                  playerHealthView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
                  playerHealthView.setPadding(0,0,10,0);
                  playerHealthView.setTextColor(Color.RED);
                  playerHealthView.setText(playerHealth + "%");
  
                  playerView.addView(playerMoneyView);
                  playerView.addView(playerHealthView);
  
                  gameInfo.addView(nameView);
                  gameInfo.addView(dateView);
                  gameInfo.addView(playerView);
  
                  gameContainer.addView(loadButton);
                  gameContainer.addView(gameInfo);
  
                  mScrollView.addView(gameContainer);
  
                  loadButton.setOnClickListener(new OnClickListener() { 
                       public void onClick(View v) {
                             Log.e("LoadSaved", "LoadSaved::onCreate: Clicking: " + gameId);
                             Intent loadGameIntent = new Intent(LoadSaved.this, Miner.class);
                             loadGameIntent.putExtra("load_game", gameId);
                             startActivity(loadGameIntent);
                             finish();
                        }
                   });
              }
         }
    }
  </code></pre>
  
  <p>loadsaved.xml
        
        
             
             </p>
  
  <pre><code>           &lt;LinearLayout
                  android:orientation="vertical"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:id="@+id/load_scroll_view" /&gt;
  
         &lt;/ScrollView&gt;
    &lt;/LinearLayout&gt;
  </code></pre>