Как получить ширину кнопки в Android - PullRequest
1 голос
/ 23 августа 2010

Я хочу показать EditText и Button в одной строке.Но размер кнопки фиксирован в несколько пикселей.Я хотел получить ширину Button программно, чтобы я мог настроить ширину EditText при изменении ориентации на вертикальную или горизонтальную. Мой XML-файл выглядит следующим образом:

<LinearLayout 
    android:id="@+id/middleLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:orientation="horizontal"
     >
<EditText 
    android:layout_height="50px" 
    android:layout_width="wrap_content" 
    android:id="@+id/searchBox"
    android:layout_marginTop="2px"
    android:visibility="visible"
    android:singleLine="true"
    android:hint="Enter Zip Code, City &amp; State"
    />
<Button
    android:layout_height="wrap_content"
    android:layout_width="20px" 
    android:id="@+id/searchBtn"
    android:visibility="visible"
    android:layout_marginTop="3px"
    android:text="Search"
    />  
</LinearLayout>

Я рассчитываю его следующим образомкод.

searchBox = (EditText) findViewById(R.id.searchBox);   
searchbutton = (Button) findViewById(R.id.searchBtn);  
int searchIconWidth = searchbutton.getWidth();
 searchBox.setWidth(getting_screen_width() -  searchIconWidth );

для расчета ширины экрана Я использовал следующее

private int getting_screen_width() 
    { 
    DisplayMetrics dm = null;
    dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    String width = ""+dm.widthPixels ;
    dm = null;
       return Integer.parseInt(width);
    }

Но когда я запускаю код выше, чем EditText занимает полную ширину, кнопка поиска не отображается.В чем может быть проблема получения ширины кнопки в пикселях.

Пожалуйста, помогите мне.Заранее спасибо.

1 Ответ

0 голосов
/ 23 августа 2010

Возможно, вы захотите использовать другой макет для ландшафта.Отметьте эту ссылку .

По сути, у вас может быть второй макет для создания ландшафта в новой папке по пути /res/ с именем layout-land.Поместите туда свой новый макет с тем же именем, а Android позаботится обо всем остальном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...