我有ListView
连续显示两个项目。显示一行的View
的根目录为LinearLayout
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingTop="10dp">
<LinearLayout
android:id="@+id/layout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey"
android:gravity="center_vertical">
<TextView
android:id="@+id/textview1"
style="@style/refinement_button"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:layout_weight="1"
android:background="@color/white"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingTop="10dp">
<LinearLayout
android:id="@+id/layout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grey"
android:gravity="center_vertical">
<TextView
android:id="@+id/textview2"
style="@style/refinement_button"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_margin="1dp"
android:layout_weight="1"
android:background="@color/white"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
在Android Studio的编辑器中,我看到了
但在我看到的设备上
(在编辑器中重新创建图像,以节省时间)
我在使用Android 7.0的Nexus6和使用Android 6.0.1的Nexus 5上尝试过此操作。我认为这是Android手机或Android Studio编辑器中的错误。编辑器的目的是向您显示设备上的布局。
我不是在询问如何创建合适的布局。我的唯一观点是,我在设备上显示的内容与我在Android Studio的编辑器中看到的内容不同,我想知道怎么回事。
答案 0 :(得分:0)
ListView
位于片段中,这是它的布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/product_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:layout_marginTop="30dp"
android:fadingEdge="none"
android:scrollingCache="false"/>
在此处将FrameLayout
更改为LinearLayout
解决了我的问题。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
我认为我的布局元素中的权重将取决于列表行布局中的包装布局,正如我在编辑器中看到的那样。但是,该布局的父级似乎在设备上很重要。
答案 1 :(得分:0)
将布局更改为,
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:padding="10dp">
<TextView
android:id="@+id/textview1"
style="@style/refinement_button"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/text_bg" />
<TextView
android:id="@+id/textview2"
android:layout_weight="1"
style="@style/refinement_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/text_bg" />
</LinearLayout>
在text_bg.xml
文件夹中创建drawable
文件。
text_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/white"/>
<stroke android:color="@color/grey" android:width="1dp"/>
</shape>
永远不要使用不需要的布局......
<?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="horizontal"
android:padding="10dp">
<TextView
android:id="@+id/textview1"
style="@style/refinement_button"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/text_bg" />
<TextView
android:id="@+id/textview2"
android:layout_weight="1"
style="@style/refinement_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/text_bg" />
</LinearLayout>
Genymotion的结果#Samsung Galaxy Note 3 api 18 #三星Galaxy s6 api 21 #Google Nexus 7 api 23
我想知道一件事,你在哪个设备上测试了代码?