我正在使用HorizontalScrollView
在屏幕上滑动TextViews
。我现在的问题是,如果有任何方法可以使每个RelativeLayout
的宽度与手机屏幕的宽度相匹配,则与用户使用的手机无关。
那么是否有办法获得设备的显示宽度,然后将其设置为RelativeLayout
的宽度?或者甚至有更好的方法来做到这一点?
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="20dp"
android:layout_marginTop="20dp"
android:fillViewport="true">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="320dp"
android:layout_height="match_parent"
android:background="@android:color/holo_blue_dark">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="15sp"
android:textColor="@android:color/black"
android:id="@+id/info"
android:layout_margin="5dp"
android:textAlignment="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/info"
android:text="0"
android:textSize="80dp"
android:layout_centerHorizontal="true"
android:id="@+id/getrunkeneLiter"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="320dp"
android:layout_height="match_parent"
android:background="@android:color/holo_green_light">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@android:color/black"
android:layout_margin="5dp"
android:id="@+id/danke"
android:textAlignment="center"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Feedback verfassen"
android:onClick="feedback"
android:layout_below="@+id/danke"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
</LinearLayout>
</HorizontalScrollView>
答案 0 :(得分:1)
您可以获取屏幕大小并以编程方式将其设置为每个视图。或者,您可以使用加权LinearLayout
并将其大小设置为元素数乘以屏幕大小。
您可以使用此功能获取屏幕尺寸(然后使用Point
的x值):
public static Point getScreenSize(Context context) {
final Point size = new Point();
final WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
final Display display = wm.getDefaultDisplay();
display.getSize(size);
return size;
}
要更新相对布局,您需要为每个布局添加一个ID。例如:
<RelativeLayout
android:id="@+id/first_subview"
android:layout_width="320dp"
android:layout_height="match_parent"
android:background="@android:color/holo_blue_dark">
然后在你的活动中:
private void updateViews() {
Point screenSize = getScreenSize(this);
updateView(findViewById(R.id.first_subview), screenSize);
updateView(findViewById(R.id.second_subview), screenSize);
...
}
private void updateView(View view, Point screenSize) {
view.getLayoutParams().width = screenSize.x
}