Android将layout_weight设置为垂直LinearLayout中的宽度

时间:2016-12-19 13:15:03

标签: android android-layout android-layout-weight

我有一个垂直的LinearLayout,其中有一个按钮。我想将此按钮设置为LinearLayout宽度的70%并使其居中。

我在设置render为0时尝试将export default class IndexPage extends React.Component { constructor(){ super(); this.state = { jsonReturnedValue: null } } componentDidMount() { this.jsonList(); } jsonList() { fetch('https://localhost:3000/api/aye') .then(function(response) { this.setState({ jsonReturnedValue: response.json() }) }) } render() { return ( <div> <h1>{this.state.jsonReturnedValue}</h1> </div> ); } } 设置为0.7,但由于它是垂直的LinearLayout,因此不会影响宽度,但可以只会影响身高。

如何在垂直布局中更改宽度的重量?我是否必须为按钮添加嵌套水平LinearLayout,以便我可以设置它的重量?

4 个答案:

答案 0 :(得分:2)

尝试使用新的PercentRelativeLayout,您可以在没有嵌套布局的情况下实现您的目标。

在您的依赖项中包含此内容:com.android.support:percent:25.1.0

然后在你的代码中

<android.support.percent.PercentRelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
  ...

 <Button
       app:layout_widthPercent="70%"
       android:layout_height="wrap_content"/>
  ...

</android.support.percent.PercentRelativeLayout>

答案 1 :(得分:0)

linearLayout -> orientation = horizontal
button -> layout width = 0dp
       -> layout height = wrap_content
       -> layout weight = 1

答案 2 :(得分:0)

请检查一下。

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

    <LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.7"
    android:gravity="center"
    android:orientation="vertical">
    <Button
        android:id="@+id/yourRequiredButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    </LinearLayout>

    <Button
        android:id="@+id/container"
        android:layout_weight="0.3"
        android:layout_width="match_parent"
        android:layout_height="0dp" />

</LinearLayout>

答案 3 :(得分:0)

试试这个:

<LinearLayout>
    <Space android:layout_weight=0.15/>
    <Button android:layout_weight=0.7/>
    <Space android:layout_weight=0.15/>
</LinearLayout>

https://developer.android.com/reference/android/widget/Space.html

我还建议您将值放在dimens.xml文件中。